动态显示行

时间:2011-05-17 09:43:05

标签: c# datagridview datatable datarow

我想显示ms访问数据库中的所有记录,但它只显示一条记录... 我有以下代码

private void Form1_Load(object sender, EventArgs e)
    {
        OleDbConnection con = new OleDbConnection();
        con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\mayur patil\\My Documents\\Dairy_db\\tblCompany.mdb";
        con.Open();
        OleDbDataAdapter da = new OleDbDataAdapter();
        DataSet ds = new DataSet();
        string sql = "SELECT * From tblCompany";

        da = new System.Data.OleDb.OleDbDataAdapter(sql, con);
        da.Fill(ds);
        DataRow dr = ds.Tables[0].Rows[0];
        int cnt = ds.Tables[0].Rows.Count;
        textBox1.Text = cnt.ToString();
        for (int i = 0; i < cnt; i++)
        {
            dataGridView1.Rows[i].Cells[0].Value = dr.ItemArray.GetValue(1).ToString();
            dataGridView1.Rows[i].Cells[1].Value = dr.ItemArray.GetValue(2).ToString();
        }


    }

如何在我的DataGridView中显示ms访问数据库中的所有记录?

2 个答案:

答案 0 :(得分:3)

dataGridView1.Rows.Add(cnt);
for (int i = 0; i < cnt; i++)
{
    DataRow row = ds.Tables[0].Rows[i];
    dataGridView1.Rows[i].Cells[0].Value = row.ItemArray.GetValue(0).ToString();
    dataGridView1.Rows[i].Cells[1].Value = row.ItemArray.GetValue(1).ToString();
}

答案 1 :(得分:2)

如果要直接访问gridview中的行和列,则必须创建它们

 dataGridView1.Columns.Add("c1", "c1");
 dataGridView1.Columns.Add("c2", "c2");
 dataGridView1.Rows.Add(10);

将在网格中添加10个空行和2列,然后您可以使用值填充它们。

另外,您可以将数据集bind添加到控件

 dataGridView1.DataSource = ds.Tables[0]

将显示包含自动生成列的表格,而无需设置gridview。