У меня проблема с базой данных access, вставляющей время выполнения

#c# #ms-access

#c# #ms-access

Вопрос:

Когда я пытаюсь вставить что-то в базу данных access и выполнить запрос для извлечения последней вставленной строки, он выдает мне последнюю вставленную строку.

Это указывает на то, что запрос, который я использовал для извлечения последней строки, еще не удалось прочитать (последняя вставленная), что указывает на наличие проблемы во времени выполнения вставки…

Вот мой код:

  tst t = new tst() {  txt="test"};
 t.Insert();
 var res = DataAccess.GetSqlValue("select * from tst where id=(select max(id) from tst)", EgxDataType.Msaccess);
  

Как я могу решить эту проблему?

Комментарии:

1. Каково определение вашего Insert метода?

2. Вставить метод формы вставить инструкцию sql затем передает параметры в инструкцию sql и, наконец, выполняет не запрос с помощью OleDbCommand

Ответ №1:

Попробуйте это:

 SELECT * FROM tst WHERE id=(SELECT max(id 1) FROM tst)
  

Комментарии:

1. Спасибо MiHawk, но это не решение упомянутой проблемы, и если оно работает один раз, оно не будет работать в следующий раз, потому что оно зависит от времени выполнения вставки.

Ответ №2:

Обратитесь к этому подходу msdn http://msdn.microsoft.com/en-us/library/59x02y99 (v = против 110).aspx

Или

в more вы можете изменить процесс вставки.

 Insert Into Table_1(Name)
    OutPut Inserted.Id,Inserted.Name
values('Sandeep')
  

Теперь, если вы запустите select * from Inserted , вы получите последнюю запись в виде таблицы, которая вставляется последней.

и используйте ExecuteReader в OleDbCommand для получения результата.

Комментарии:

1. Это не моя проблема — извлекать записи в виде таблицы или нет, кроме того, это плохо повлияет на производительность