如何使用会话变量为asp.net编写更新查询?

时间:2013-06-10 15:21:06

标签: asp.net sql session visual-studio-2012

新手提醒! 我目前正在开发一个关于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。有了这个,我得到了很多构建错误,如“; expected”,“无效的表达式术语”),“等。另外,Patient_ID是一个i​​nt类型的属性,所以我不能使用Session [”patid“]。ToString( )。 有谁能建议解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:0)

考虑到您违反所有最佳做法/安全规则,请查看以下内容:

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

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

请查看here了解详情

答案 1 :(得分: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();
}