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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу сохранить изменения в базе 
:(
    Опции темы
nevermind111
Дата 2.4.2010, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не работает такой код, ругается на функцию Update(), пишет:
Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей.
В чем проблема?

Код

DataSet thisDataset = new DataSet();
            OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\new.mdb");
            
OleDbDataAdapter thisAdapter=new OleDbDataAdapter("SELECT * FROM t", thisConnection);
            
            OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);
            
            thisAdapter.Fill(thisDataset, "t");

            thisDataset.Tables[0].Rows[0][0] = "blabla";

            thisAdapter.Update(thisDataset.Tables[0]);
            thisConnection.Close();

PM MAIL   Вверх
emmanuil
Дата 12.4.2010, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нужно в DataTable загрузить структуру таблицы с ключами.
Зачем вам DataSet, если используете одну таблицу? А где using? Слышали про IDisposable? smile

Это сообщение отредактировал(а) emmanuil - 12.4.2010, 19:21
PM MAIL   Вверх
nevermind111
Дата 12.4.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



И как мне загрузить структуру таблицы в DataTable?
PM MAIL   Вверх
emmanuil
Дата 13.4.2010, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть метод FillScheme у адаптера.
Или DataTable.Load(DbCommand.ExecuteReader(CommandBehavior.KeyInfo)) - кажись так.
PM MAIL   Вверх
nevermind111
Дата 13.4.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А можешь на примере показать как это реализовывается?
А то уже не знаю что и делать, никак не могу разобраться smile 
PM MAIL   Вверх
emmanuil
Дата 13.4.2010, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

DataTable dt = new DataTable();
using (DbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\new.mdb")) {
    using (DbCommand cmd = thisConnection.CreateCommand()){
    cmd.Text = "select ...";
    dt.Load(cmd.ExecuteReader(CommandBehavior.KeyInfo));
    using (OleDbDataAdapter thisAdapter=new OleDbDataAdapter(cmd)) {
            OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);
            thisAdapter.UpdateCommand = thisBuilder.GetUpdateCommand(); -- эту
            dt.Rows[0][0] = "blabla";
            thisAdapter.Update(dt);
    }
    }
}
Я не помню, Fill заполняет структуру или нет. У тебя там нет присвоения команды. Попробуй еще как у тебя было, только добавь указанную строку.
Студии под рукой нет, писал по памяти.
Пользуйся поиском, хоть иногда, таких примеров куча.  smile 

Это сообщение отредактировал(а) emmanuil - 13.4.2010, 17:34
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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