1

新手警告!我目前正在 Visual Studio 上的一个 asp.net 项目上工作,没有任何以前的经验或知识。我需要编写一个查询,该查询根据包含会话变量的 where 子句进行更新。

我有一个 Session["patid"] 存储一个整数值。我的代码中的查询部分如下所示:

SqlCommand cmd1 = new SqlCommand("update prescription set Medicine#1='"+med1txt.Text+"' where Patient_ID = Session["patid"]",con);

其中 con 是一个 SqlConnection。有了这个,我得到了很多构建错误,例如“;预期”,“无效的表达式术语')'”等。另外 Patient_ID 是一个 int 类型属性,所以我不能使用 Session[“patid”].ToString( )。任何人都可以提出解决方案吗?谢谢!

4

2 回答 2

0

考虑到您违反了执行此操作的所有最佳实践/安全规则,请查看以下内容:

SqlCommand cmd1 = new SqlCommand("update prescription set Medicine ='" + med1txt.Text + "' where Patient_ID =" + Session["patid"]",con);

我至少会使用带有参数的 SqlCommand 来避免 SQL 注入等。

请在这里查看更多信息

于 2013-06-10T15:24:54.693 回答
0

尝试这个

String query = @"update prescription set medicine#1=@medicine where patient_id=@patientId";
using(SqlCommand cmd = new SqlCommand(query, conn)){
cmd.Parameters.AddWithValue("@medicine", med1txt.Text);
cmd.Parameters.AddWithValue("@patientId", Session["patid"]);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
于 2013-06-10T15:34:24.163 回答