我尝试使用sql参数的代码,但没有工作,并没有返回任何错误。我该如何解决?
string sql = "SELECT * FROM "+mw.db_name+".ananmez_genel Where hasta_id='@hastaid'";
string connectionString = ConfigurationManager.ConnectionStrings["MYDBConnectionString"].ConnectionString;
using (MySqlConnection connect = new MySqlConnection(connectionString))
{
using (MySqlCommand cmd = new MySqlCommand(sql, connect))
{
connect.Open();
cmd.Parameters.AddWithValue("@hastaid",hasta_id);
MySqlDataReader mdr;
mdr = cmd.ExecuteReader();
if (mdr.Read())
{
for (int i = 0; i < 20; i++)
{
arti = (i + 1).ToString();
kontrol = mdr.GetString("c_" + arti);
if (kontrol == "True")
{
ananmezcheck.ananmez_gnlkontrol(i, check);
}
}
yirmibir.Text = mdr.GetString("txt_1");
}
connect.Close();
}
如果我像这样使用它,它可以工作:
string sql = "SELECT * FROM "+mw.db_name+".ananmez_genel Where hasta_id='"+hastaid+"'";
所以数据库没有问题。
答案 0 :(得分:8)
这部分是问题所在:
Where hasta_id='@hastaid'
没有使用参数 - 正在搜索hasta_id
的值恰好是字符串@hastaid
的行,因为您已将其放入字符串字面量。你需要摆脱引号:
Where hasta_id=@hastaid
然后它正在查找hasta_id
的值与参数@hastaid
的值匹配的行。