2011-02-24 48 views
1

我不能插入記錄表的LINQ to SQL - 數據庫將不會更新

PODataContext db = new PODataContext(); 

test t = new test(); 
t.name = "name"; 
t.age = "dfd"; 

db.tests.InsertOnSubmit(t); 
db.SubmitChanges(); 

我的應用程序完美運行。但插入的記錄不存在。但是當我從數據庫讀取它正在完美工作。

var s = from n in db.tests 
     select n; 

foreach(var k in s) 
{ 
    MessageBox.Show(k.name); 
} 

這是爲什麼? (我只安裝了VS 2010)請幫助。

謝謝

+2

是否有可能在'PODataContext'沒有指向同一個數據庫所使用的連接字符串你在看什麼? – 2011-02-24 09:19:19

+2

'插入的記錄不存在'?插入的記錄不在哪裏?你繼續聲明該記錄在數據庫中,那麼記錄沒有出現,你期望它在哪裏? – Lazarus 2011-02-24 09:20:29

+2

你是否真的在說插入記錄,但你的'DataContext'沒有顯示新插入的記錄? – 2011-02-24 09:24:27

回答

3

確保你的表有主鍵

+2

+1:這是停止它爲我工作的原因 – 2011-02-24 09:59:58

+0

我敢肯定如果出現這樣的問題,會拋出異常 – Jens 2011-02-24 10:05:05

+0

不幸的是,沒有。它沒有拋出異常,只是遇到了這個問題。 – Polynomial 2012-08-10 13:42:16

1

嘗試使用清除緩存DataContext如下:

db.GetType().InvokeMember(
    "ClearCache", 
    BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, 
    null, db, null); 

這可能會解決您的問題。另外,如果您使用的是Refresh(),則不會從數據庫中獲取最新更改。

+0

什麼是'context'? – 2011-02-24 10:54:56

+0

@ leo87:對不起,那應該是'db',現在修改了答案 – 2011-02-24 10:59:56