我想显示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访问数据库中的所有记录?
答案 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。