Отображение строк динамически - PullRequest
0 голосов
/ 17 мая 2011

Я хочу показать все записи, которые есть в базе данных 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();
        }


    }

как я могу отобразить все записи из базы данных MS Access в моем DataGridView?

Ответы [ 2 ]

3 голосов
/ 17 мая 2011
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();
}
2 голосов
/ 17 мая 2011

Если вы хотите получить прямой доступ к строкам и столбцам в сетке, вы должны создать их

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

добавит 10 пустых строк с 2 столбцами в сетке, затем вы можете заполнить их значениями.

Альтернативно вы можете привязать ваш набор данных к элементу управления

 dataGridView1.DataSource = ds.Tables[0]

отобразит вашу таблицу с автоматически сгенерированными столбцами, без необходимости настройки вида сетки.

...