for (int i = 0; i < final_query.Length; i++)
{
con.Open();
SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i]);
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string PatientName = (string)rdr[" Data "];
}
}
我收到了这个错误
ExecuteReader:尚未初始化Connection属性。
在这一行
SqlDataReader rdr = cmd.ExecuteReader();
我该如何解决?
答案 0 :(得分:4)
您需要将Connection传递给SqlCommand
SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i], con);
但还有其他错误:
使用和重用参数,而不是字符串连接
con.Open();
SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE Data=@data", con);
cmd.Parameters.AddWithValue("@data", 0); // Supposing final_query[i] is an Int32
for (int i = 0; i < final_query.Length; i++)
{
cmd.Parameters["@data"].Value = final_query[i];
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string PatientName = (string)rdr[" Data "];
}
}
在第一轮之后,您仍然不清楚您对PatientName的假设是什么
答案 1 :(得分:0)
你告诉sqlcommand使用连接con 尝试
SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i], con);
虽然看起来这不是很好的编码,但可以使用一些重新设计......