|
Ошибка формирования ib-значения входящего параметра
|
|||
---|---|---|---|
#18+
Доброго всем дня. Я пытаюсь создать приложение для работы с базами данных в программе visual basic 2008. Для создания самой базы данных я использую программу IBexpert (Firebird 2.5v). В общем, у меня получилось создать приложение, умеющее вносить данные в таблицу, удалять данные из таблицы, отображать данные. Однако уже второй день я никак не могу настроить обновление(update) данных. Что бы я ни делал, мне выкидывает ошибку: "Ошибка формирования ib-значения входящего параметра. Позиция 1. Конвертирование из [DBTYPE_WSTR] в [DBTYPE_I4]". Я понял, что ошибка как-то связана с ID(primary key) в моей таблице. Прошу вашей помощи! Внизу прикладываю четыре версии кода: первые две - внесение, удаление, отображение данных. Последняя - нерабочий код, который нуждается в доработке. Также выкладываю скриншот таблицы из Ibexpert(она одна). Спасибо! Работающий код внесения данных: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Fcommand = New OleDbCommand("INSERT INTO FF (NAME, PRICE) VALUES (:NAME, :PRICE)", Fconnection) Fcommand.Parameters.AddWithValue(":NAME", ItnameTb.Text) Fcommand.Parameters.AddWithValue(":PRICE", PriceTb.Text) If ItnameTb.Text = "" Or PriceTb.Text = "" Then MsgBox("Пожалуйста, укажите название и цену товара!") Else Fconnection.Open() Fcommand.ExecuteNonQuery() MsgBox("Товар был успешно добавлен в базу!") ref() End If Fconnection.Close() Работающий код удаления данных: Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click Fcommand = New OleDbCommand("DELETE FROM FF WHERE PRODUCT_ID = :PRODUCT_ID", Fconnection) Fcommand.Parameters.AddWithValue(":PRODUCT_ID", TextBox2.Text) If TextBox2.Text = "" Then MsgBox("Пожалуйста, укажите ID товара, который вы желаете удалить!") Else Fconnection.Open() Fcommand.ExecuteNonQuery() MsgBox("Товар успешно был удален!") Fconnection.Close() ref() End If End Sub Работающий код отображения данных: Private Sub Butto3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Butto3.Click Dim ds As New DataSet Fadapter = New OleDbDataAdapter("SELECT * FROM FF", Fconnection) Fadapter.Fill(ds) ItemDGV.DataSource = ds.Tables(0) End Sub Нерабочий код обновления(проблема): Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click Fcommand = New OleDbCommand("UPDATE FF SET NAME = :NAME, PRICE = :PRICE WHERE PRODUCT_ID = :PRODUCT_ID", Fconnection) Fcommand.Parameters.AddWithValue(":PRODUCT_ID", TextBox2.Text) Fcommand.Parameters.AddWithValue(":NAME", ItnameTb.Text) Fcommand.Parameters.AddWithValue(":PRICE", PriceTb.Text) Fconnection.Open() Fcommand.ExecuteNonQuery() Fconnection.Close() End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 13:09 |
|
Ошибка формирования ib-значения входящего параметра
|
|||
---|---|---|---|
#18+
AirballЯ пытаюсь создать приложение для работы с базами данных в программе visual basic 2008. В нём есть функция преобразования строки в число? Если да - используй её. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 13:50 |
|
Ошибка формирования ib-значения входящего параметра
|
|||
---|---|---|---|
#18+
Ура! Спустя пару часов мучений, я таки смог разобраться. Оказалось, что нужно, чтобы все атрибуты шли в правильном порядке. Т.е где идут подряд три строки Fcommand.Parameters.AddwithValue, они должны соотвествовать порядку из строки выше "Update FF....". В любом случае, у кого будет такая же проблема, я оставляю пофикшенный код: Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click Fcommand = New OleDbCommand("UPDATE FF SET NAME = :NAME, PRICE = :PRICE WHERE PRODUCT_ID = :PRODUCT_ID", Fconnection) Fcommand.Parameters.AddWithValue(":NAME", ItnameTb.Text) Fcommand.Parameters.AddWithValue(":PRICE", PriceTb.Text) Fcommand.Parameters.AddWithValue(":PRODUCT_ID", IdTB.Text) Fconnection.Open() Fcommand.ExecuteNonQuery() Fconnection.Close() ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 16:41 |
|
Ошибка формирования ib-значения входящего параметра
|
|||
---|---|---|---|
#18+
Для меня это выглядит как баг. Пиши Коваленко (или чей ты там провайдер используешь), пусть не игнорируют имена параметров, раз уж они заданы в AddWithValue. Хотя возможно, что у тебя в этом вызове просто лишние двоеточия из-за чего эти параметры и не связываются с теми из запроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 16:56 |
|
Ошибка формирования ib-значения входящего параметра
|
|||
---|---|---|---|
#18+
Airball, Переключись на это . Там с именнованными параметрами проблем нет. И с другими вещами тоже. --- Я уже и забыл о существовании System.Data.OleDb :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 16:59 |
|
|
start [/forum/topic.php?fid=40&msg=40122951&tid=1559855]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 241ms |
total: | 364ms |
0 / 0 |