Как использовать целочисленную переменную в запросе sqlserver? - PullRequest
0 голосов
/ 02 апреля 2019

У меня проблема с моим 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);

Какой правильный синтаксис для этого: название = число?

Ответы [ 3 ]

2 голосов
/ 02 апреля 2019

Я предлагаю использовать параметры, чтобы избежать SQL-инъекций .

Может выглядеть так.

using (SqlCommand command = new SqlCommand("SELECT * FROM table WHERE title = @Number", connection))
{
    command.Parameters.Add(new SqlParameter("@Number", int.Parse(textbox.Text)));

    //read data
}
0 голосов
/ 02 апреля 2019

Это очень простой вопрос, который вы могли бы легко решить, просто взглянув на него.

В любом случае, здесь вы хотите использовать параметризованную команду 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);
0 голосов
/ 02 апреля 2019

Вы можете добавить целое число, выполнив следующее

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...