Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL CE. Конфликт между запросами.  [new]
ilnur-slv
Member

Откуда:
Сообщений: 2
Добавляю в базу данных элемент:

SqlCeResultSet result;
command.CommandType = CommandType.TableDirect;
command.CommandText = table;
result = command.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);
result.Read();
SqlCeUpdatableRecord record = result.CreateRecord();

record.SetInt32(0, id);
result.Insert(record, DbInsertOptions.PositionOnInsertedRow);

db.Close();


Потом ищу максимальный id:

command.Connection = db;
command.CommandText = "SELECT MAX(" + table + "ID)  FROM " + table;

Int32 id = Convert.ToInt32(command.ExecuteScalar());
db.Close();


Получаю ошибку:
Указанная таблица не существует. [ SELECT MAX(ImageID)  FROM Image ]


Я не могу понять из-за чего он не видит таблицу.
Если выполнять второй код отдельно то все работает. А если выполнять после первого кода то не работает.
Помогите пожалуйста. Я даже не знаю из-за чего ошибка.
14 апр 12, 20:53    [12417746]     Ответить | Цитировать Сообщить модератору
 Re: SQL CE. Конфликт между запросами.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Откройте для себя scope_identity(), пока не нашли кроме ID еще кучу граблей.
14 апр 12, 20:54    [12417751]     Ответить | Цитировать Сообщить модератору
 Re: SQL CE. Конфликт между запросами.  [new]
ilnur-slv
Member

Откуда:
Сообщений: 2
Не думал что ответ будет таким быстрым. Спасибо большое.
Скажите пожалуйста как передать в коде
record.SetInt32(0, id);

вместо id SQL код scope_identity() + 1 ?
14 апр 12, 21:02    [12417776]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить