Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Синтаксис SQL в DataAdapter.UpdateCommand для MS Access / 8 сообщений из 8, страница 1 из 1
13.10.2008, 15:04
    #35591429
Ok@
Ok@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
Добрый день!
Нужно сделать UpdateCommand для DataAdapter к MS Access 2003. OleDbCommandBuilder дает Exception "Ошибка синтаксиса в инструкции Update".

Такое вот
Код: plaintext
1.
2.
3.
sqlStr = "UPDATE Params SET Params.[value] = '33' WHERE Params.name='connectionsNum'";
OleDbCommand cmdUpdate = new OleDbCommand(sqlStr, connection);
cmdUpdate.ExecuteNonQuery();
жужжит правильно,

такое
Код: plaintext
1.
2.
3.
4.
sqlStr = "UPDATE Params SET Params.[value] = ? WHERE Params.name=?";
OleDbCommand cmdUpdate = new OleDbCommand(sqlStr, connection);
daParams.UpdateCommand = cmdUpdate;
daParams.Update(tParams);  
дает Exception "Отсутствует значение для одного или нескольких параметров"

а такое
Код: plaintext
1.
2.
3.
4.
sqlStr = "UPDATE Params SET Params.[value] = '?' WHERE Params.name='?'";
OleDbCommand cmdUpdate = new OleDbCommand(sqlStr, connection);
daParams.UpdateCommand = cmdUpdate;
daParams.Update(tParams);  
дает Exception "Currency violation: the UpdateCommand affected 0 of the expected 1 records" ( одна запись таки изменена )

Че не так, подскажите, пожалуйста?
...
Рейтинг: 0 / 0
13.10.2008, 15:25
    #35591499
SerP1983
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
2-е правильно, но надо добавить параметры
...
Рейтинг: 0 / 0
13.10.2008, 15:38
    #35591541
Ok@
Ok@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
Как это сделать? (новичок :))
...
Рейтинг: 0 / 0
13.10.2008, 16:00
    #35591608
Ok@
Ok@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
SerP19832-е правильно, но надо добавить параметры
Спасибо за подсазку!

Получилсь так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
string sqlStr = "UPDATE Params SET Params.[value] = @value WHERE Params.name=@name";
OleDbCommand cmdUpdate = new OleDbCommand(sqlStr, connection);
OleDbParameter  par = cmdUpdate.Parameters.Add("@value", OleDbType.VarChar);
par.SourceColumn = "value";
par = cmdUpdate.Parameters.Add("@name", OleDbType.VarChar);
par.SourceColumn = "name";
daParams.UpdateCommand = cmdUpdate;
daParams.Update(tParams);                

P.S.
А как сделать такое с "вопросиками"?
...
Рейтинг: 0 / 0
13.10.2008, 17:35
    #35591913
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
Можно и с вопросиками
Код: plaintext
1.
2.
3.
4.
5.
 OleDbParameter p = new OleDbParameter();
            p.DbType = DbType.String;
            p.Value = "bla-bla";
            cmd.Parameters.Add(p);
            cmd.ExecuteReader();
...
Рейтинг: 0 / 0
14.10.2008, 11:44
    #35592952
Ok@
Ok@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
Спасибо! Еще один вопрос: как каждому вопросику, если таковых несколько, сопоставляется конкретный параметр? Выходит, первому встретившемуся в запросе вопросику сопоставляется первый параметр, второму- второй...?
...
Рейтинг: 0 / 0
15.10.2008, 12:07
    #35595353
SerP1983
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
Ага, так оно и есть. Поэтому плавно переходим к именованным параметрам. Пример Вы уже сами и предоставили выше.
...
Рейтинг: 0 / 0
17.10.2008, 10:07
    #35600055
Ok@
Ok@
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис SQL в DataAdapter.UpdateCommand для MS Access
Спасибо!
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Синтаксис SQL в DataAdapter.UpdateCommand для MS Access / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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