2014-06-17 45 views
0

當我嘗試在訪問數據庫中插入某些內容並進行查詢以檢索最後插入的行時,它會爲我提供上次插入的行。我遇到了訪問數據庫插入執行時間的問題

這表明查詢我用來獲取最後一行無法讀取(最後插入),然而,這表明存在插入執行時間的問題......

這裏是我的代碼:

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

我該如何解決這個問題?

+0

「Insert」方法的定義是什麼? – Dai

+0

插入方法表單插入sql語句然後傳遞參數到sql語句並最終使用OleDbCommand執行非查詢 –

回答

0

試試這個:

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

感謝MiHawk,但它不是解決上述問題的方法,如果它工作一次,它將不會在下一次工作,因爲它削弱了插入執行時間。 –

0

請參閱MSDN的做法,更可以修改插入過程http://msdn.microsoft.com/en-us/library/59x02y99(v=vs.110).aspx

或者

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

現在,如果你運行select * from Inserted您將得到最新的紀錄表,其插入最後。

並在OleDBCommand中使用ExecuteReader來接收結果。

+0

這不是我的問題檢索記錄表或不是,進一步比它會嚴重影響性能 –

+0

謝謝Bhaarat :) –