DataTable将列添加到DataGrid而不是添加新行?

时间:2014-07-20 20:59:18

标签: c# datagridview datagrid datatable

我有一个DataGridView,我正在尝试从SQLite数据库中提取数据。

DataGridView的结构是:

  • TaskName : String
  • TaskDueDate : String
  • Status : ComboBox

代码:

String SelectQuery = "Select TaskName,TaskDue,Status from TASKS Order BY Status";
SQLiteConnection slite = new SQLiteConnection("data source = Dash.sqlite");
slite.Open();

SQLiteDataAdapter data = new SQLiteDataAdapter(SelectQuery, slite);
SQLiteCommandBuilder Command = new SQLiteCommandBuilder(data);

DataTable table = new DataTable();

data.Fill(table);
MyTasksGrid.AutoGenerateColumns = false;
MyTasksGrid.DataSource = table;

过去几个小时我在这里看了几个问题,包括this one, 但是它产生了与上面代码完全相同的结果。

This问题还表明我的代码在接受的答案中是正确的吗?

我在网格中显示正确的行数,但所有单元格都是空白的。如果我删除AutoGeneratColumns行,则会添加数据,但会添加新列,这是我不想要的。 (我希望将它添加到已定义的列中。) 谁能帮我看看我哪里出错?

1 个答案:

答案 0 :(得分:1)

String SelectQuery = "Select ID,TaskName,TaskDue,Status from TASKS Order BY Status";
   SQLiteConnection slite = new SQLiteConnection("data source = SupportDash.sqlite");
   slite.Open();

   SQLiteDataAdapter data = new SQLiteDataAdapter(SelectQuery, slite);
   SQLiteCommandBuilder Command = new SQLiteCommandBuilder(data);
   var Bind = new BindingSource();
   DataTable table = new DataTable();

   Bind.DataSource = table;

   MyTasksGrid.AutoGenerateColumns = false;
   MyTasksGrid.DataSource = table;

   MyTasksGrid.DataSource = Bind;
   MyTasksGrid.Refresh();

   data.Fill(table);

我还需要添加' DataPropertyName'在控制属性中。