从 for 循环中的表中进行选择
本文关键字:行选 选择 for 循环 | 更新日期: 2023-09-27 18:35:37
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 "];
}
}
我收到了那个错误
执行读取器:连接属性尚未初始化。
在这一行
SqlDataReader rdr = cmd.ExecuteReader();
我该如何解决它?
你需要将连接传递给 SqlCommand
SqlCommand cmd=new SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i], con);
但是还有其他错误:
- 召唤骗子。Open() 应该在 For 循环之外
使用和重用参数,而不是字符串连接
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 "]; } }
目前还不清楚您在第一轮之后假设如何处理患者名称
你不会告诉 sqlcommand 使用连接 con尝试
SqlCommand("SELECT * fROM TableFFF WHERE Data="+final_query[i], con);
虽然这似乎不是很好的编码,并且可以使用一些重新设计......