数据行未显示

本文关键字:显示 数据 | 更新日期: 2023-09-27 17:55:32

我使用了 DataRow,它可以显示在我的 WinForm 的组合框中,但不知何故,它不起作用,尽管整个表格已成功显示在网格视图中。

   private void Form1_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter da = new SqlDataAdapter();
        DataTable dt = new DataTable();
        DataSet ds = new DataSet();
        con.ConnectionString = "Data Source=.;Initial Catalog=StudentDetails;Integrated Security=True";
        cmd.Connection = con;
        cmd.CommandText = "select * from StuDet";
        da.SelectCommand = cmd;
        da.Fill(ds);
        dt = ds.Tables[0];
        dataGridView1.DataSource = dt;
        DataRow dr = dt.NewRow();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            comboBox1.Items.Add(dr[0]);
        }
    }

数据行未显示

创建一个

空的新行

DataRow dr = dt.NewRow();

并将其添加到comboBox1 Rows.Count次。我认为您想要的是遍历dt.Rows的每一行:

foreach (DataRow dr in dt.Rows)
{
    comboBox1.Items.Add(dr["Roll"]);
}

刚才想通了答案,请看一下底部的循环。

   private void Form1_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter da = new SqlDataAdapter();
        DataTable dt = new DataTable();
        DataSet ds = new DataSet();
        con.ConnectionString = "Data Source=.;Initial Catalog=StudentDetails;Integrated Security=True";
        cmd.Connection = con;
        cmd.CommandText = "select * from studet";
        da.SelectCommand = cmd;
        da.Fill(ds);
        dt = ds.Tables[0];
        dataGridView1.DataSource = dt;
 ////////////////////////////////////////////////////
        DataRow dr = dt.NewRow();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dr[0] = dt.Rows[i][0];
            comboBox1.Items.Add(dr[0]);
        }
    }