假设我有2张桌子,人和分享。
tblPerson
username(varchar)
和表共享
tblsharing
sharingperson (varchar) link to table person
sharedperson (varchar) link to table person
我正在尝试在表共享中插入一个新行,但它说“对象引用未设置为对象的实例”。 这是我的代码,temp是tblSharing的新实例
tblSharing temp= new tblSharing();
temp.sharingperson = db.tblPersons.Single(x =>x.username==strSharingPerson).username;
temp.sharedperson = db.tblPersons.Single(x => x.username == sharedperson).username;
db.tblSharings.InsertOnSubmit(temp);
我尝试了另一种方式只是分配文字:
temp.sharingperson = "username_sharing"
temp.sharedperson = "username_shared"
db.tblSharings.InsertOnSubmit(temp);
有谁知道如何解决这个问题?
答案 0 :(得分:0)
您发布的代码中有4件事可以为null。 如果你告诉我们你在哪一行得到错误,也许我们可以缩小范围:)
1)db.tblPersons.Single(x => x.username == strSharingPerson)可以为null - 但你说你检查过它并不是......
2)db.tblPersons.Single(x => x.username == sharedperson)同样的故事
3)temp可以为null,但是你说你在分配任何内容之前就创建了它。
4)db也可以为null。如果您已在数据库中检查了这些记录是否存在,那么这并不意味着您在代码中与实时连接进行通信。在调试时,您的数据库是设置为正确的实例,还是为空?
如果这些事情中的所有4个都不为空,那么我认为你的代码应该可行。 如果不是这种情况,我们要么在这里缺少相关代码,要么就是其他相关信息,你应该向我们提供它(例如,确切的行yu得到异常:))