Передача значений в базу данных из формы заявки C # - PullRequest
0 голосов
/ 18 декабря 2009

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

После запуска программы. я нажимаю кнопку, которая запускает оператор вставки, и получаю следующую ошибку: «ЧИСЛО ЗАПРОСОВ И ПОЛЕЙ НАЗНАЧЕНИЯ НЕ ОСТАЕТСЯ»

Как я могу это исправить ...?

пожалуйста, дайте мне знать, если потребуется дополнительная информация .... Спасибо ...

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

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

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

INSERT INTO SomeTable (col1,col2,col3) VALUES ('val1','val2',3)

Вы, вероятно, пытались сделать что-то вроде этого:

INSERT INTO SomeTable VALUES ('val1','val2',3)

Что не будет работать, так как поле первичного ключа имеет автоматическую нумерацию.

Попробуйте это:

sqlQuery = 
"INSERT INTO Youth (" + 
"NumbersOfSport, " + 
"YouthID, " + 
"Price, " + 
"TotalCostOfTraining, " + 
"PercentageDiscount, " + 
"AmountDue," + 
"DatePurchased" + 
") VALUES (" + 
toSql(qtyInt) + ", " + 
toSql(youthInt) + ", " + 
toSql(priceStr) + ", " + 
toSql(totalCstStr) + ", " + 
toSql(discountStr) + ", " + 
toSql(amtDueStr) + ", " + 
toSql(Convert.ToDateTime(purDate)) + ")"

Вы пропустили запятую здесь: "AmountDue" + должно быть: "AmountDue" +

формат VB:

sqlQuery = "INSERT INTO Youth (" + "NumbersOfSport," + "YouthID," + "Price," + "TotalCostOfTraining," + "PercentageDiscount" + "AmountDue" + "DatePurchased" + ") VALUES (" + toSql (qtyInt) + "," + toSql (youthInt) + "," + toSql (priceStr) + "," + toSql (totalCstStr) + "," + toSql (discountStr) + "," + toSql (amtDueStr) + "," + toSql (Convert.ToDateTime (purDate)) + ")"

2 голосов
/ 18 декабря 2009

Вы перечислили столбцы, в которые вы вставляете?

INSERT INTO table (col1, col2) VALUES (val1, val2)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...