【问题标题】:Displaying rows dynamically动态显示行
【发布时间】:2011-05-17 09:43:05
【问题描述】:

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

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 access 数据库中的所有记录?

【问题讨论】:

    标签: c# datagridview datatable datarow


    【解决方案1】:
    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();
    }
    

    【讨论】:

    • @Stecya;- 它给出了“ArgumentsOutOfRangeException 已处理”的错误......:(
    • 您的 dataGridView 可能没有足够的行或单元格
    • 在我的datagridview中有两个单元格和1行,但是在我的数据库中有4行我想在我的datagridview中显示......:(
    • 为了显示所有行 dataGridView1 必须有 4 行。使用dataGridView1.Rows.Add(cnt)
    • 我应该在哪里设置“dataGridView1.Rows.Add(cnt)”?
    【解决方案2】:

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

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

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

    或者你可以bind你的数据集到控件

     dataGridView1.DataSource = ds.Tables[0]
    

    将使用自动生成的列显示您的表格,而无需设置网格视图。

    【讨论】:

    • 我的数据库中有行我不想在我的datagridview中显示,如何?
    • 在您的代码中,您已经将所有行加载到数据集中。您需要做的就是将 gridview 的 datasource 属性设置为数据集中的表。 gridview 控件应该自动处理它,如果不检查 gridview 的 AutoGenerateColumns 属性是否设置为 true。
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 2011-10-03
    • 1970-01-01
    • 2018-11-03
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多