DataGrid에 데이터가 표시되지 않음
-
12-12-2019 - |
문제
나는 DataGrid
CSV 파일을 읽고 처리한 후 모바일 애플리케이션에서지금까지 내가 가진 것은 다음과 같습니다.
private void btOpenFile_Click(object sender, EventArgs e)
{
try
{
// Process all data into an array of Object
// this.records array contains objects of type MyRecord
// Create datatable and define columns
DataTable dt = new DataTable("myDt");
dt.Columns.Add( new DataColumn("String A",typeof(string)));
dt.Columns.Add( new DataColumn("Int 1", typeof(int)));
// Loop through and create rows
foreach(MyRecord record in records) {
DataRow row = dt.NewRow();
row[0] = record.stringA;
row[1] = record.int1;
dt.Rows.Add(row);
}
// Create dataset and assign it to the datasource..
DataSet ds = new DataSet("myDs");
ds.Tables.Add(dt);
dataGrid.DataSource = ds;
dataGrid.Refresh();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message,"Error");
}
}
애플리케이션을 실행할 때 얻는 것은 빈 데이터 그리드 구성요소뿐입니다.누군가 내 실수를 지적할 수 있나요?아니면 이것을 올바르게 수행하는 방법은 무엇입니까?
해결책
DataSet DataGrid.datasource = dt없이 시도하십시오.
다른 팁
이것을 시도하면 도움이 될 것입니다 ...
DataSet Ds = new DataSet();
DataTable Dt = new DataTable();
Ds.Tables.Add(Dt);
Dt.Columns.Add(new DataColumn("String A", typeof(string)));
Dt.Columns.Add(new DataColumn("Int 1", typeof(int)));
Dt.Rows.Add(new object[] { "Patricia", 3 });
Dt.Rows.Add(new object[] { "John", 4 });
Dt.Rows.Add(new object[] { "Mayer", 5 });
대신에:
dataGrid.DataSource = ds;
dataGrid.Refresh();
노력하다:
dataGrid.SetDataBinding(ds, "myDt");
이는 데이터 소스와 데이터 멤버를 동시에 설정하는 효과가 있습니다.
DataSet 내부의 테이블에 DataSource를 설정하는 경우에도 작동합니다.다음과 같은 것:
datagrid.DataSource = ds.Tables["myDt"];
데이터 세트에는 둘 이상의 테이블이 포함될 수 있으며 어떤 테이블을 사용할지, 어디를 볼지 명시적으로 알려야 한다는 점을 기억하세요. :)
h번째
문제는 데이터 소스를 데이터 세트로만 참조할 수 없다는 것입니다. Dataset.Datatable과 같아야 합니다.여기 예가 있습니다
Dataset DS = new Dataset();
DS.Tables.Add(TableName);
//
Populate dataset
//
mydatagrid.Datasource = DS.Tables[0];
즉, 데이터를 표시하려면 데이터세트 내의 테이블을 참조해야 합니다.도움이 되었기를 바랍니다...:)
답변이 매우 늦었다는 것을 알고 있습니다....하지만 다른 사람들에게는 도움이 될 것입니다...
DataSet ds = gridUpdate.GridUpdate();
(gridUpdate.GridUpdate()에 대해 걱정하지 마세요. 데이터 세트를 생성하는 기능입니다.)
dataGridView1.DataSource = ds.Tables[0]
제휴하지 않습니다 StackOverflow