Как мне ссылаться на значения элементов моей формы в запросе? C # MSSQL

#c# #sql-server #connection

#c# #sql-server #подключение

Вопрос:

Я пытаюсь вставить данные из моего значения текстового поля в базу данных. Этот код работает отлично

 SqlCommand query = new SqlCommand(@"INSERT INTO GuestTable (CustomerName, Address) VALUES ('"   textBox1.Text   "','"   textBox2.Text   "')", con);
 

Но мне нужно только вставить эти данные в указанный идентификатор. Итак, я решил, что мне нужно добавить это:

   WHERE CustomerID = '"  Convert.ToInt32(textBox3.Text) "'
 

Но эта строка выдает ошибку только после того, как я запустил программу со словами: «Ошибка возле ключевого слова ‘WHERE’ ..»

Ответ №1:

Короче говоря, вы так не поступаете. Вы никогда не должны использовать конкатенацию строк в SQL-запросе. В C # вы должны использовать параметризованные запросы. Затем вы можете использовать методы, предоставляемые C #, для вставки ваших переменных в запрос.

Вот пример, взятый из использования параметризованного запроса, чтобы избежать внедрения SQL

 string sql = "select count(UserID) from user_login where UserID=@UserID and pwd=@pwd";  
SqlCommand cmd = new SqlCommand(sql, con);  
SqlParameter[] param = new SqlParameter[2];  
param[0] = new SqlParameter("@UserID", txtUSerID.Text);  
param[1] = new SqlParameter("@pwd", txtPwd.Text);  
cmd.Parameters.Add(param[0]);  
cmd.Parameters.Add(param[1]);