2014-07-21 3 views
0

디자이너에서 열을 추가 한 datagridview가 있는데이 그리드의 데이터가 데이터베이스에서 선택되고 그리드에 직접 바인딩됩니다. 이 목적을 위해 데이터베이스 테이블의 열 이름에 DataPropertyName이 있습니다.VB.Net 헤더가없는 DataGridview 행을 지움

나는 다음과 같은 데이터 소스를 설정하고있다 :

dgPayment.DataSource = myDatatable 

지금 내가있는 DataGridView의 헤더를 제거하지 않고있는 DataGridView의 행을 취소해야합니다. dgPayment.Rows.Clear()을 사용해 보았지만 격자가 바운드되어 &이므로 행을 수동으로 변경할 수 없으므로 오류 메시지가 표시됩니다. 나는이 같은 아무것도 데이터 소스를 설정하려 :

dgPayment.DataSource = Nothing

을하지만 그들은 내가 디자이너를 사용하여 추가 열 머리글이기 때문에 일어날 필요가 없습니다 너무 헤더를 제거합니다. 머리글을 지우지 않고 데이터 만 지우려면 어떻게합니까?

+0

myDataTable.Rows.Clear()를 시도해보십시오. –

답변

1

시도해보십시오.

dataGridView1.DataSource.Rows.Clear() 
+0

DataSource는 type 객체입니다. 어떻게 작동하는지 잘 모르겠습니다. –

+0

@AseemGautam OP 세트가 바인딩되어 있으므로 datgridview에 데이터 소스가 있다고 생각합니다. 그 권리? – Sathish

+0

'Option Strict On '을 사용하면이 옵션이 작동하지 않습니다. 항상 사용해야합니다. – Fabio

2

데이터 테이블에서 행만 제거하십시오.

DataTable.Rows.Clear(). 이렇게하면 열이 그대로 유지됩니다. 당신이 디자이너를 통해 열을 만드는 경우

dgPayment.AutoGenerateColumns = false 

그리고 자유에 대한 dgPayment.DataSource = Nothing를 사용하는 다음 코드를 넣어 다음 줄 형태 constructor 또는 Load 이벤트 처리기에서,

CurrencyManager cm = ((CurrencyManager)) dataGridView1.BindingContext[dataGridView1.DataSource]; 
cm.Refresh(); 
+0

바운드 데이터 격자보기에서 수행 할 수 없습니다. – codeGEN

+0

데이터 테이블 행을 지우고 DataGridview 행을 지우십시오. –

+0

내 실수로 울부 짖었다. 네가 datagridview에 대해 언급 한 줄 알았는데 .Rows.Clear() – codeGEN

3

- 그럼

데이터를 새로 고치려면 모든 행을 지우는 중

+0

좋은 속임수. AutoGenerateColumns = false를 항상 사용하지만, Load 이벤트에 배치하면 열이 손실되는 것을 방지 할 수 없다는 사실을 알지 못했습니다. 이제는 데이터 가능 해결 방법이 필요 없습니다 ... –