Mahrukh Razi Ответов: 3

Вставить оператор с предложением where в C#


Как использовать оператор insert с предложением where?.

У меня есть два стола
1. Компания
2. Продукт
В таблице компаний есть идентификатор (PK) и название компании
В таблице product есть ProductID (PK), Price, QTy и CompanyID(FK)

когда пользователь выбирает название компании из comboBox и вводит ProductID, Price и Qty, оно должно быть сохранено в таблице конкретной таблицы Product.

Что я уже пробовал:

вставить в Т1 (SR_NO,ах,Модель,Цена,кол-во,код) значения('" + текстовое поле textbox1.Текст + "','" + поле textbox2.Текст + "','" + textbox3 и.Текст + "','" + textBox4.Текст + "', '" + textBox5.Текст + "',1 где id = '1')

[no name]

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

3 Ответов

Рейтинг:
25

#realJSOP

Во-первых, ваша закрывающая скобка находится в неправильном месте.

insert into T1 (SR_NO, AH, Model, Price, Qty, ID) 
Values('" + textBox1.Text + 
       "', '" + textBox2.Text + 
       "', '" + textBox3.Text + 
       "', '" + textBox4.Text + 
       "', '" + textBox5.Text + 
       "', " 1) where ID = 1 


Во-вторых, вы должны использовать параметризованные запросы, которые изменят ваш запрос, чтобы он выглядел следующим образом:

insert into T1 (SR_NO, AH, Model, Price, Qty, ID) 
Values(@srNo, @ah, @model, @price, @qty, @id) where ID = 1 


В-третьих, вам не нужно предложение where в операторе insert. Почему вы сами назначаете идентификатор? Вы можете сделать так, чтобы база данных делала это за вас, когда вставляется запись. Это (наряду с параметризованными запросами) сделает ваш запрос похожим на следующий:

insert into T1 (SR_NO, AH, Model, Price, Qty) 
Values(@srNo, @ah, @model, @price, @qty)


Наконец, следуйте отраслевой практике при написании SQL-запросов. Это, как правило, поможет вам лучше прочитать запрос.

INSERT INTO [database_name].[dbo].[T1] ([SR_NO], [AH], [Model], [Price], [Qty]) 
VALUES (@srNo, @ah, @model, @price, @qty)


Рейтинг:
2

Member 13361792

Это дает ошибку.
Неправильный синтаксис около ключевого слова "где"
Мой код таков..
строку запрос= "вставить в поле(PostNum,CourseName)значения('" + текстовое поле textbox1.Текст + "','" + DropDownList1.Элемент + "'), где Стид'"+элемент Label1.Текст+"'";
SqlCommand cmd = new SqlCommand(query, con);


Patrice T

Это не решение этого вопроса.
Откройте новый вопрос для вашей проблемы и удалите его.

Рейтинг:
0

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Если вы вставляете, то зачем вам нужен ПК продукта? Вы можете сделать этот столбец автоматически увеличенным.

Тогда ваш оператор insert должен выглядеть следующим образом.

INSERT INTO Product (ColumnNames) VALUES (AllValues) WHERE CompanyId = ComboBoxSelectedCompanyId


Mahrukh Razi

Это дает ошибку рядом с предложением where

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

В чем же ошибка?