2016-10-31 3 views
0

내 데이터 소스로 DataGridView에서 DataTable까지 값을 추가하는 데 다음 코드 집합이 있습니다. 그러나 "필드 tbl_main의 하위 목록을 만들 수 없습니다."라는 오류 메시지가 계속 표시됩니다. 문제를 파악하는 데 도움을 줄 수있는 사람이 누구입니까?""필드의 하위 목록을 만들 수 없습니다.

dgvMySchedule.Columns.Clear(); 
dgvMySchedule.Rows.Clear(); 
dgvMySchedule.ClearSelection(); 

dataSet.Tables.Add(tbl_main); 
dgvMySchedule.DataSource = dataSet; 
dgvMySchedule.DataMember = "tbl_main"; 

tbl_main.Columns.Add("TIME"); 
tbl_main.Columns.Add("CLASS"); 

DataRow row; 
dgvMySchedule.RowTemplate.Height = 8; 
for (int i = 0; i <= 71; i++) 
{ 
    row = tbl_main.NewRow(); 
    row["TIME"] = i; 
    row["CLASS"] = i; 
    tbl_main.Rows.Add(row); 
} 
+0

왜 한 테이블에 대한 데이터 세트를 만드십니까? 어쨌든 여전히 생성 된 행을 테이블에 추가하고 다시 바인딩해야합니다. – Poody

답변

0

그것은 당신의 tbl_main처럼 보이는 것은 이름이다, 또는 "tbl_main"가 아닌 다른 이름이 있습니다. 세 가지 해결책이 있습니다 :

  1. (dgvMySchedule.DataMember = "tbl_main"를 말하는 줄을 제거, 당신은 데이터 집합을 필요 /하려는 경우 tbl_main.TableName = "tbl_main";
  2. 를 추가, 당신은 /는 데이터 집합을 원하는해야하는 경우 대신 dgvMySchedule.DataSource = tbl_main;
  3. 를 사용하여 데이터 집합을 제거 그리드는 자동으로 하나의 DataTable을 사용합니다).
+0

안녕하세요! 나는 나의 실수를 마침내 깨달았다. 신고하는 동안 내 datatable을 초기화하는 것을 잊었습니다. DataTable을 사용했습니다. tbl_main = new DataTable(); 대신 DataTable tbl_main = 새 DataTable ("tbl_main"); 변경 사항은 내 관심사에 거의 답했습니다. 고맙습니다! – Amore

0

마침내 실수를 실감했습니다. 신고하는 동안 내 datatable을 초기화하는 것을 잊었습니다. 나는 DataTable을 사용했다. tbl_main = new DataTable(); DataTable 대신 tbl_main = 새 DataTable ("tbl_main"); 변화는 나의 관심사에 거의 대답했다. 고맙습니다!