我已经写了下面的代码来从数据库中获取记录并分配给SqlCommand对象。现在我的问题是,后端的查询实际上给出了2条记录,但在前端,数据网格只填充了一条记录。在命令对象中,为什么我不能同时获得这两行。缺点是dreader只执行一行数据,而不执行另一行数据。我哪里错了?我们是否可以将多个记录sql数据填充到SQl对象中?
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);
}
}发布于 2015-10-28 22:32:45
要使用数据读取器返回的所有记录,请替换以下内容
if (dreader.Read())使用
while (dreader.Read())https://stackoverflow.com/questions/33393617
复制相似问题