c# - 如何在查询中传递字符串

标签 c#

我必须在查询中传递一个字符串值...这是我的代码

 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/

相关文章:

c# - 如何在 WPF 中与 Width ="150*"相反?

c# - Asp.net 核心代码优先数据库迁移

c# - AZURE Blobs .ListBlobs() 扩展了限制

c# - 在android和windows之间同步文件的最佳方式

c# - 在 Azure 中使用 .Net 创建大数据实时仪表板的最有效方法是什么?

c# - 返回可空类型值的通用方法

c# - 如何协调 LINQ 中的第一条和最后一条记录

c# - 如何在使用 Visual Studio 发布应用程序时自动执行 gulp 任务?

C# AND 赋值运算符 (&=) 与按位枚举

c# - 文本框自动完成字符串集合建议