2011-09-20 127 views
4

我有以下代碼:的LINQ to SQL INSERT語句不工作

 pillboxDataContext db = new pillboxDataContext(); 

     userAccount newUser = new userAccount(); 
     newUser.userName = "test123"; 
     newUser.userPhone = "1234567890"; 
     newUser.userEmail = "[email protected]"; 
     newUser.userPwd = "testpassword"; 
     newUser.userCreateDate = DateTime.Now; 
     newUser.userAccountType = "basic"; 

     db.users.Add(newUser); 
     db.SubmitChanges(); 

userAccount是我與性能的對象(即匹配了用戶表)。

我很困惑db.users.Add(newUser);線。 .Add說明:System.Data.LINQ.Table不包含'Add'的定義。

我所關注的例子似乎表明應該允許.Add。我是新來的,所以請任何建議都會非常有幫助。

UPDATE:

我改成了db.users.InsertOnSubmit(newUser);不過,我仍然得到一個錯誤:

The best overloaded method match for 'System.Data.Linq.Table.InsertOnSubmit(user)' has some invalid arguments

修復!

看過其他代碼示例後,我發現我將數據分配給類(userAccount)而不是表(用戶)。

所以我改變了:userAccount newUser = new userAccount();user newUser = new user(); 然後一切工作就像我期望的。

感謝您的信息!

+0

你爲'db.users'定義了什麼類型? – Tejs

+0

我不認爲我做過。我在哪裏檢查? – webdad3

+0

在你的'pillboxDataContext'上,'users'的類型是什麼? – Tejs

回答

6

是的,Add將不起作用 - 我懷疑你想要InsertOnSubmit

db.users.InsertOnSubmit(newUser); 
db.SubmitChanges(); 
+0

感謝Jon回答我的問題。我試過InsertOnSubmit但是,我仍然收到錯誤。查看更新的問題。 – webdad3

1

你的代碼是:

db.users.InsertAllOnSubmit(newUser); 

喬恩建議,你的代碼應該是:

db.users.InsertOnSubmit(newUser); 

還有就是兩者之間有着巨大的區別。一個IDE對這類事情非常有幫助......

+0

是的,你說得對。這是我的錯誤,但是,我仍然遇到錯誤。謝謝你抓住我的錯誤。 – webdad3

+0

什麼是新錯誤? –