powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как запустить команду Update для OleDbAdapter?
11 сообщений из 11, страница 1 из 1
Как запустить команду Update для OleDbAdapter?
    #32259193
Bob12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поменял содержимое: dataset1.Tables("Clients").Rows(0)(1) = "Hello"
Теперь хочу записать изменения в базу: adapt.Update(dataset1). Не идет! Ошибку выкидывает. Как правильно (и надо ли) использовать OleDbCommandBuilder в этом случае?
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32259324
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не идет - привел бы текст Exception

если ты сам или через form-designer не строишь для адаптера команд на
insert, delete и update, то в этом случае используй CommandBuilder. Его надо создать до первых изменений, вносимых в таблицы. Необходимое условие - таблицы, содержимое которых считывается через адаптер, должны содержать PK или unique constrant (и соответствующие им поля должны быть включены в select адаптера).
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32259923
Bob12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можешь глянуть на код? В ЧЕМ ПРОБЛЕМА?

Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\DATA.MDB")
Dim adapt As New OleDb.OleDbDataAdapter()
Dim dset As New DataSet()
Dim cb As New OleDb.OleDbCommandBuilder()

Заполняю DataSet и DataGrid, включаю CommandBuilder для будущего Update:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

adapt = New OleDb.OleDbDataAdapter("Select * from Orders", conn)

dset.Clear()
adapt.Fill(dset, "Orders")

cb = New OleDb.OleDbCommandBuilder(adapt)
txtCommand.Text = cb.GetUpdateCommand().CommandText
dGrid.DataSource = dset.Tables("Orders")

End Sub

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click

adapt.Update(dset, "Orders") <--- вот тут вылетает!!
dset.AcceptChanges()

End Sub
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32259943
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде бы все верно в коде. еще раз - приведи текст исключения. без него трудно сказать, что здесь не так.
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32260008
Bob12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Syntax error in UPDATE statement. Блин, а также загрузил пример из одной книжки - тоже вылетает на Udpate! Может у меня база данных открывается не эксклюзивно? Глюк в VS.NET? У меня 2002 версия, SP2 поставил тоже. Правда WinXP без SP1 стоит.
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32260057
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставь эту команду перед adtp.Update
Код: plaintext
txtCommand.Text = cb.GetUpdateCommand().CommandText 
и посмотри на ее текст. может access'у, дествительно, не нравится сиснтаксис сгенеренной update-команды.
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32260072
Bob12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нравится?

UPDATE Orders SET Order Num = ? , Order Date = ? , Client Num = ? , Event Date = ? , Event Hour = ? , Place Num = ? , Invited = ? , Comments = ? , Coin = ? , Discount - P = ? , Discount - S = ? , Total Price = ? , Advance = ? , Advance - Shekels = ? , Advance Reciept Num = ? , Advance Reciept Date = ? , Total Including Tax = ? , Pay Condition Num = ? , Last Copy = ? , Canceled Order Num = ? , Canceled Order Date = ? , Reserve = ? , To = ? , Teams Num = ? , Event Type Num = ? , To Hour = ? WHERE ( (Order Num = ?) AND (Order Date = ?) AND ((? IS NULL AND Client Num IS NULL) OR (Client Num = ?)) AND ((? IS NULL AND Event Date IS NULL) OR (Event Date = ?)) AND ((? IS NULL AND Event Hour IS NULL) OR (Event Hour = ?)) AND ((? IS NULL AND Place Num IS NULL) OR (Place Num = ?)) AND ((? IS NULL AND Invited IS NULL) OR (Invited = ?)) AND ((? IS NULL AND Coin IS NULL) OR (Coin = ?)) AND ((? IS NULL AND Discount - P IS NULL) OR (Discount - P = ?)) AND ((? IS NULL AND Discount - S IS NULL) OR (Discount - S = ?)) AND ((? IS NULL AND Total Price IS NULL) OR (Total Price = ?)) AND ((? IS NULL AND Advance IS NULL) OR (Advance = ?)) AND ((? IS NULL AND Advance - Shekels IS NULL) OR (Advance - Shekels = ?)) AND ((? IS NULL AND Advance Reciept Num IS NULL) OR (Advance Reciept Num = ?)) AND ((? IS NULL AND Advance Reciept Date IS NULL) OR (Advance Reciept Date = ?)) AND ((? IS NULL AND Total Including Tax IS NULL) OR (Total Including Tax = ?)) AND ((? IS NULL AND Pay Condition Num IS NULL) OR (Pay Condition Num = ?)) AND ((? IS NULL AND Last Copy IS NULL) OR (Last Copy = ?)) AND ((? IS NULL AND Canceled Order Num IS NULL) OR (Canceled Order Num = ?)) AND ((? IS NULL AND Canceled Order Date IS NULL) OR (Canceled Order Date = ?)) AND ((? IS NULL AND Reserve IS NULL) OR (Reserve = ?)) AND ((? IS NULL AND To IS NULL) OR (To = ?)) AND ((? IS NULL AND Teams Num IS NULL) OR (Teams Num = ?)) AND ((? IS NULL AND Event Type Num IS NULL) OR (Event Type Num = ?)) AND ((? IS NULL AND To Hour IS NULL) OR (To Hour = ?)) )
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32260093
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нравится?
нет, такой текст не понравится даже SQL серверу
1. нельзя использовать в качестве имен полей зарезервированные слова (Date и пр.)
2. нельзя чтобы имена полей содержали пробел или знаки арифметики (Advance - Shekels и пр.)

во всех случаях такие имена необходимо для access заключать в квадратные скобки, а builder, гад, сам этого не сделал

сразу за командой
Код: plaintext
cb = New OleDb.OleDbCommandBuilder(adapt) 
поставь:
Код: plaintext
1.
cb.QuotePrefix= "[" 
cb.QuoteSuffix= "]" 
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32260103
Bob12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КЛАСС!!!!!!!!!!! НУ ТЫ СПЕЦ! СПАСИБО ОГРОМНОЕ. Я ТУТ УЖЕ ПЯТЫЙ ДЕНЬ БЬЮСЬ - проклятый CommandBuilder. Я на него понадеялся вначале. Уже думал к VB6 вернуться.

Хочешь какую-нибудь проф-книжечку в PDF? У меня их полно, могу выслать.
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32260668
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочешь какую-нибудь проф-книжечку в PDF? У меня их полно, могу выслать.
у тебя русские? а ангицких здесь на ftp полно....
...
Рейтинг: 0 / 0
Как запустить команду Update для OleDbAdapter?
    #32261436
Bob12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На английском у меня. А где ФТП?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как запустить команду Update для OleDbAdapter?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]