2012-03-02 4 views
0
dataGridView1.DataSource = myDataSet1; 
dataGridView1.DataMember = "SomeTable"; 

이제 DataGridView1에서 DataTable에 대한 피드백을 받고 싶습니다. 이 같은 뭔가 :DataGridView에서 컨트롤에서 기본 DataTable을 가져 오는 방법은 무엇입니까?

DataTable dt = (DataTable)dataGridView1.DataSource... ; 

내가 BindingContext를 알고 있어요,하지만 다시 DataTable을 refference을 얻을 수있는 방법을 찾을 수 없습니다.


알 수 있습니다.

DataSet dataSet = (DataSet)dataGridView1.DataSource; 
string tableName = dataGridView1.DataMember; 
DataTable dt =dataSet.Tables[tableName]; 
+3

datSET을 데이터 소스로 설정하고 dataTABLE을 가져 오려고합니다. – Reniuz

+1

DataSet을 사용하여 DataSet의 특정 테이블을 가리 키도록 DataMember를 제공합니다. – Excelan

답변

1

dataset을 gridview에 지정합니다. 그래서 아래 줄은 u를 도울 것입니다.

DataTable dt = ((DataSet)dataGridView1.DataSource).Tables[index]; 

데이터 집합에 하나의 데이터 테이블 만 있다고 가정합니다. 인덱스 대신 테이블 이름을 사용할 수도 있습니다.

0

당신은 하나 탄력이 될 수에서 이런 식으로 변환 할 수 있습니다 (null의 오류를 방지하기 위해) 또는 기회를.

짧은 버전은 다음과 같습니다 (데이터 집합에 바인딩 된 뷰를 가정하지 않음)

DataTable dt = ((DataSet) dataGridView1.DataSource).Tables[0]; 

보다 탄력적 인 접근 방법 : 분명히

DataSet ds = dataGridView1 as DataSet; 
if (ds != null) DataTable dt = ds.Tables[0]; 

당신이/검사에서 테이블의 수를 확인하실 수 있습니다 DataSet

관련 문제