我编写了以下代码来从数据库中获取记录并分配给SqlCommand对象。现在我的问题是,后端的查询实际上是给出2条记录,但在前端,数据网格只填充一条记录。在命令对象中,为什么我没有得到这两行。邪恶的是dreader只执行一行数据而不是另一行。我哪里错了?我们可以将多个记录sql数据填充到SQl Command对象中吗?
string sql = "select * from student_detail where (roll_no = '" + txtRollNumber.Text + "') OR (s_name = '" + txtStudentName.Text + "')";
comm = new SqlCommand(sql, conn);
try
{
dreader = comm.ExecuteReader();
if (dreader.Read())
{
txtRollNumber.Text = dreader[0].ToString();
txtStudentName.Text = dreader[1].ToString();
txtAge.Text = dreader[2].ToString();
txtCourse.Text = dreader[3].ToString();
DataRow rd = this.myTable.NewRow();
rd[0] = txtRollNumber.Text;
rd[1] = txtStudentName.Text;
rd[2] = txtCourse.Text;
rd[3] = txtAge.Text;
this.myTable.Rows.Add(rd);
}
}
答案 0 :(得分:0)
为了使用数据读取器返回的所有记录,请替换以下
SetWindowsHooxEx
与
if (dreader.Read())