Vik*_*ice 10 c# sql-server-2008
我有一个WPF应用程序,我得到了
string someone = TextBox.text;
Run Code Online (Sandbox Code Playgroud)
我想在以下查询中使用它
query = " Select * From Table Where Title = someone "
Run Code Online (Sandbox Code Playgroud)
我该如何在查询中使用变量?
msa*_*het 22
你可以这样做
query = "Select * From Table Where Title = " + someone;
Run Code Online (Sandbox Code Playgroud)
但这很糟糕,并打开SQL注入
您应该只使用参数化查询
这样的事情应该让你开始
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);
}
Run Code Online (Sandbox Code Playgroud)
来自Jon Skeet的答案,因为他比我的更完整
有关更多信息,请参阅SqlCommand.Parameters的文档.
基本上,您不应出于各种原因将您的值嵌入SQL本身:
Jon*_*eet 13
您应该使用参数化SQL查询:
query = "SELECT * From TableName WHERE Title = @Title";
command.Parameters.Add("@Title", SqlDbType.VarChar).Value = someone;
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅SqlCommand.Parameters的文档.
基本上,您不应出于各种原因将您的值嵌入SQL本身: