gpt4 book ai didi

c# - 如何在sql语句中使用字符串变量

转载 作者:可可西里 更新时间:2023-11-01 08:51:10 26 4
gpt4 key购买 nike

我有一个正在获取的 WPF 应用程序

string someone = TextBox.text;

我想在下面的查询中使用它

query = " Select * From Table Where Title = someone "

我应该如何在查询中使用变量 someone?

最佳答案

你可以这样做

query = "Select * From Table Where Title = " + someone;

但这很糟糕,会让你暴露于 SQL 注入(inject)

你应该只使用参数化查询

像这样的事情应该让你开始

using (var cn = new SqlClient.SqlConnection(yourConnectionString))
using (var cmd = new SqlClient.SqlCommand())
{
cn.Open();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * From Table Where Title = @Title";
cmd.Parameters.Add("@Title", someone);
}

来自 Jon Skeet 的回答,因为他的回答比我的更完整

请参阅 SqlCommand.Parameters 的文档获取更多信息。

出于各种原因,基本上您不应该将您的值嵌入到 SQL 本身中:

  • 代码和数据混在一起很不雅
  • 它让你接触到 SQL 注入(inject)攻击,除非你非常小心地逃跑
  • 你必须担心格式和国际化细节,比如数字、日期和次等
  • 当查询保持不变时只有值改变,优化器要做的工作更少——它可以查找之前直接优化的查询,因为它将完美匹配SQL 条款。

关于c# - 如何在sql语句中使用字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7263893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com