将访问数据加载到DataGridView中

时间:2019-12-29 07:05:20

标签: c# winforms datagridview

我在Visual Studio项目中有一个MS Access数据库作为连接。添加连接后,它会自动生成一些代码:

private void CruncherForm_Load(object sender, EventArgs e)
{
    // TODO: This line of code loads data into the 'wcMainDBDataSet.stations_NOAA' table. You can move, or remove it, as needed.
    this.stations_NOAATableAdapter.Fill(this.wcMainDBDataSet.stations_NOAA);
}

我已将该代码修改为以下代码:

private void CruncherForm_Load(object sender, EventArgs e)
{
    // TODO: This line of code loads data into the 'wcMainDBDataSet.stations_NOAA' table. You can move, or remove it, as needed.
    this.stations_NOAATableAdapter.Fill(this.wcMainDBDataSet.stations_NOAA);

    foreach (var row in this.wcMainDBDataSet.stations_NOAA.Rows)
    {
        this.wthrDB.Rows.Add(row);
    }
}

wthrDB是我的DataGridView。我没有从我的Access数据库中的数据网格中获得2行。正确的方法是什么?

一个想法: 列之间是否需要一些链接?如果您计算ID(主键)Access自动生成的列,则我的Data Grid View中有9个定义的列,而Access文件中有10个。如果是这样,在数据源方案中该如何做?

1 个答案:

答案 0 :(得分:0)

DataGridView具有DataSource属性,可以将其设置为DataTable。确保它实际上包含一些行(在CruncherForm_Load方法中设置一个断点,并在调试模式下检查stations_NOAA)

private void CruncherForm_Load(object sender, EventArgs e)
{
    this.stations_NOAATableAdapter.Fill(this.wcMainDBDataSet.stations_NOAA);

    this.wthrDB.DataSource = this.wcMainDBDataSet.stations_NOAA;
}

还可能需要将DataPropertyName分配给DataGridView列