2011-09-20 99 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

什么是新错误? –