Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при UPDATE Database 
:(
    Опции темы
Andruxa28
  Дата 26.2.2011, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.1.2011

Репутация: нет
Всего: нет



Здравствуйте! 
Возникла проблема при обновлении записей в таблице БД 
вот привожу код 
Код

'Подключаюсь к БД и вывожу таблицу "Доходы в DataGrid
Dim StrCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="_
 & My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\Users\" & User_name & "\DataBase.mdb")
    Dim Select2 As String = "SELECT * FROM Доходы"
    Dim comand As New OleDbCommand(Select2, StrCon)
    Dim adapter As New OleDbDataAdapter(comand)
    Dim AllTables As New DataSet("AllData")
    Dim comanbuilder As New OleDbCommandBuilder(adapter)
    adapter.Fill(AllTables, "Доходы")
    DataGrid_Доходы.DataSource = AllTables.Tables.Item("Доходы")
' Так пытаюсь обновить записи
Private Sub Update_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Update_button.Click
        StrCon.Open()
        Dim COMMAND2 As New System.Data.OleDb.OleDbCommand("UPDATE Доходы SET Категория = ?, _
             Тип = ?, Сумма = ?, Валюта = ?, Дата = ?, [Член Семьи] = ? WHERE([id дохода] = ?) _ 
             AND (? = 1 AND Категория IS NULL OR Категория = ?) AND (? = 1 AND Тип IS NULL OR Тип = ?) _
             AND (? = 1 AND Сумма IS NULL OR Сумма = ?) AND (? = 1 AND Валюта IS NULL OR Валюта = ?) _
             AND (? = 1 AND Дата IS NULL OR Дата = ?) AND (? = 1 AND [Член Семьи] IS NULL OR [Член Семьи] = ?)")
        COMMAND2.Connection = StrCon
        COMMAND2.ExecuteNonQuery()
        StrCon.Close()
           End Sub


на что получаю вот такую ошибку  smile 
Код

System.Data.OleDb.OleDbException не обработано
  ErrorCode=-2147217904
  Message="Отсутствует значение для одного или нескольких требуемых параметров."

таблица  "Доходы"
user posted image

Помогите разобраться..
Правильно ли я вообще пытаюсь обновить записи?
Может как-то по другому можно?


Это сообщение отредактировал(а) Andruxa28 - 26.2.2011, 18:52
PM MAIL WWW   Вверх
diadiavova
Дата 26.2.2011, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Andruxa28, у тебя в запросе 19 параметров smile Им всем надо передать значения.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Andruxa28
Дата 27.2.2011, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.1.2011

Репутация: нет
Всего: нет



Цитата(diadiavova @ 26.2.2011,  23:48)
Andruxa28, у тебя в запросе 19 параметров smile Им всем надо передать значения.

хм... а как их передавать то ? не подскажешь?
это 
Код

COMMAND2.parameters.add("Категория", OleDbType.VarWChar, 50, "Категория") 

??? 
а мож как -то проще можно это все сделать?

Это сообщение отредактировал(а) Andruxa28 - 27.2.2011, 00:18
PM MAIL WWW   Вверх
diadiavova
Дата 27.2.2011, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Andruxa28 @  27.2.2011,  00:11 Найти цитируемый пост)
а мож как -то проще можно это все сделать?

Проще будет, если использовать встроенные инструменты студии, да и при использовании SQL Server вместо эксесса тоже есть кое-какие преимущества. А так можно код и иначе написать, но принцип все равно останется тем же - коллекцию параметров придется инициировать вручную в коде.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Andruxa28
Дата 27.2.2011, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.1.2011

Репутация: нет
Всего: нет



Цитата(diadiavova @ 27.2.2011,  00:27)

 А так можно код и иначе написать.

А это иначе , лучше(надежнее) того что я накалякал?


PM MAIL WWW   Вверх
diadiavova
Дата 27.2.2011, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Andruxa28 @  27.2.2011,  00:32 Найти цитируемый пост)
А это иначе , лучше(надежнее) того что я накалякал?

В смысле " надежнее"? Тебе просто надо добавить параметры, так что в смысле надежности разницы нет. Хотя сам по себе запрос с 19-ю параметрами выглядит как-то странно.

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Andruxa28
Дата 27.2.2011, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.1.2011

Репутация: нет
Всего: нет



Большое спасибо за помощь! Буду разбираться  
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.