2013-07-09 38 views
0

下面的代碼是我用的。 SQL表名:tbl_Student
列:student_id(標識),名,姓,位置,電子郵件。值在LINQ/C#中爲列標識插入錯誤

當我提交下面的代碼。以下錯誤將會發生。我對這個概念很陌生。我不知道如何管理標識欄。請幫助。

無法執行創建,更新或刪除 「表(tbl_Student)」操作,因爲它在C#中沒有主鍵

 tbl_Student ts = new tbl_Student(); 
     ts.Firstname = textBox1.Text; 
     ts.Lastname = textBox2.Text; 
     ts.Location = textBox3.Text; 
     ts.Email = textBox4.Text; 
     db.tbl_Students.InsertOnSubmit(ts); 
     db.SubmitChanges(); 
+0

在SSMS中右鍵單擊該表並選擇設計,彰顯'student_id'並單擊小圖標,看起來像一個關鍵。保存並重新生成模型。 – asawyer

+0

我已經將主鍵添加到該colomn。但仍然返回錯誤 – Hari

+1

保存,*重新生成模型。* – asawyer

回答

0

你在數據庫中的主鍵表通過設計器生成Linq to SQL類時的表嗎?只是爲了確保,通過設計人員重新生成這些類。

+0

我忘了在表格中修改後重新生成模型。無論如何,非常感謝你 – Hari

+0

upvote我請! – Tarik

1

按規定:

Can't perform Create, Update or Delete operations on a table because it has no primary key in c#

你要麼需要嘗試(通過ExecuteCommand)執行自己的命令,或者更好 - 修改你的表有一個關鍵,這是強烈推薦。

注意:正如我在下面的註釋中指定的那樣,添加密鑰後,需要重新生成模型。自己執行查詢

例子:

db.ExecuteQuery<Studnet>("INSERT INTO tbl_Student VALUES(Firstname ,LastName, Location, Email)"); 
+0

我使用executecommand還可以在插入查詢之前和之後設置開/關標識屬性,但它返回相同的錯誤。 – Hari

+0

所以你已經添加了一個密鑰,問題依然存在?你是否重新生成模型? –

+0

錯誤已恢復。在表格中修改後,我忘了重新生成模型。無論如何,非常感謝你。 – Hari

相關問題