我的SQL查询有问题。我在sqlserver中有一个数据库。
int number = int.Parse(textbox.Text);
var sqlconn = new SqlConnection(@"Server=(localdb)\MSSQLLocalDB; AttachDbFileName=|DataDirectory|db.mdf;");
sqlconn.Open();
var sqlcomm = new SqlCommand("SELECT * FROM table WHERE title = number", sqlconn);
正确的语法是什么:title =数字?
答案 0 :(得分:2)
我建议使用参数来避免使用SQL Injection。
可能看起来像这样。
using (SqlCommand command = new SqlCommand("SELECT * FROM table WHERE title = @Number", connection))
{
command.Parameters.Add(new SqlParameter("@Number", int.Parse(textbox.Text)));
//read data
}
答案 1 :(得分:0)
您可以通过执行以下操作添加整数内联
var sqlcomm = new SqlCommand("SELECT * FROM table WHERE title = " + number.ToString(), sqlconn);
或者您可以将其添加为如下所示的参数:
var sqlcomm = new SqlCommand("SELECT * FROM table WHERE title = @num", sqlconn);
sqlcomm.Parameters.AddWithValue("@num", number);
答案 2 :(得分:0)
这是一个非常基本的问题,只需将其谷歌搜索即可轻松解决。
无论如何,您想在此处使用参数化的SQL命令。
var sqlcomm = new SqlCommand("SELECT * FROM table WHERE title = @number", sqlconn);
SqlParameter param = new SqlParameter();
param.ParameterName = "@number";
param.Value = int.Parse(textbox.Text);
sqlcomm.Parameters.Add(param);