我必须在查询中传递一个字符串值...这是我的代码
string a = ConfigurationManager.AppSettings["var"];
SqlDataAdapter da = new SqlDataAdapter("select codesnippet from edk_custombrsnippet_vw where partnerid = 'a'", con);
DataTable dt = new DataTable();
da.Fill(dt);
我得到了字符串 a 中的值..但我不知道如何在该查询中传递该字符串..有什么建议吗?
最佳答案
使用参数化查询,例如:
string a = ConfigurationManager.AppSettings["var"];
SqlDataAdapter da = new SqlDataAdapter(
"select codesnippet from edk_custombrsnippet_vw where partnerid = @PartnerID",
con);
da.SelectCommand.Parameters.AddWithValue("@PartnerId", a);
DataTable dt = new DataTable();
da.Fill(dt);
您应该不将字符串值嵌入到 SQL 本身中 - 这会使您容易受到 SQL 注入(inject)攻击。不可否认,在这种情况下,它不是用户提供的值,但最好不要直接包含它。
编辑:我从 this MSDN page 改编了这个例子但似乎 SqlDataAdapter
据我所知,实际上没有 Parameters
属性。因此,我对其进行了调整,以使用 SqlDataAdapter.SelectCommand.Parameters
,我希望可以正常工作...但您可能需要稍微调整一下。
关于c# - 如何在查询中传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322941/