#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]);