如何在c#中检索数据表的行值

本文关键字:数据表 检索 | 更新日期: 2023-09-27 18:13:38

我试图在c#中执行sql查询并将结果存储在DataTable变量中。然后我想从某一行得到值。这是我的代码。

string query = "select * from Deptment where Dname=@Dname";
con.Open();
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@Dname", comboBox1.SelectedText);
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
textBox2.Text = dt.Rows[0][0].ToString();
Dept_name.Text = dt.Rows[0][1].ToString();
textBox1.Text = dt.Rows[0][2].ToString();
No_of_Employees.Text = dt.Rows[0][3].ToString();
Dept_discription.Text = dt.Rows[0][4].ToString();
con.Close();

但是我得到这个错误:

位置0没有行

如何在c#中检索数据表的行值

显然你没有得到任何结果。要避免此异常,请添加检查

if (dt.Rows.Count > 0)
{
    textBox2.Text = dt.Rows[0][0].ToString();
    Dept_name.Text = dt.Rows[0][1].ToString();
    textBox1.Text = dt.Rows[0][2].ToString();
    No_of_Employees.Text = dt.Rows[0][3].ToString();
    Dept_discription.Text = dt.Rows[0][4].ToString();
}
如果索引值如dt.Rows[0]["Name"]

和i将使用列名。