0
我想从sql数据库中检索数据,并根据我提供的值将该数据设置为某些文本框。就像,如果我提供了一个名字“约翰”,它应该获取所有的数据反对约翰,并把它放在文本框。代码如下无法通过sqldatareader检索数据
string query = "SELECT * FROM PatientInfo WHERE Name LIKE '@Name';";
using (SqlConnection cn = new SqlConnection(constr))
using (SqlCommand cmd = new SqlCommand(query, cn))
{
cn.Open();
cmd.Parameters.AddWithValue("@Name",String.Format("%{0}%", txtsearchpatient.Text));
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
txtid_search.Text = reader["PatientID"].ToString();
txtname_search.Text = reader["Name"].ToString();
txtphone_search.Text = reader["Phone"].ToString();
txtage_search.Text = reader["Age"].ToString();
txtaddress_search.Text = reader["Address"].ToString();
txtemail_search.Text = reader["Email"].ToString();
}
}
else
{
MessageBox.Show("No record found");
}
reader.Close();
cn.Close();
}
我收到错误“无效尝试时,不存在数据读取”当我手动执行在SQL Management Studio中的查询与它成功返回的所有字段相同的查询时。哪里有问题?
'LIKE'@ Name''应该是'LIKE @ Name' –
它的工作原理:O当我这样做时,它说“必须声明标量变量名”,但现在它工作。非常感谢 。请张贴您的回复,以便我可以将其标记为答案。 – SidraM