2013-04-14 30 views
3

我將表中主鍵的狀態設置爲IDENTITY。我在VS中插入另一個表的字段,但是當我運行這個程序時,程序有錯誤。爲什麼?我的問題是什麼?當IDENTITY_INSERT設置爲OFF時,無法在表'IncomeTable'中爲標識列插入顯式值

我的表中的ID字段被設置爲Identity。

運行時錯誤是:

Cannot insert explicit value for identity column in table 'IncomeTable' when IDENTITY_INSERT is set to OFF. 
在VS

private void button1_Click(object sender, EventArgs e) 
{ 
    IncomeTable income = new IncomeTable(); 
    income.amount_income = amount; 
    income.comment_income = comment; 
    income.date_income = date; 
    context.IncomeTables.InsertOnSubmit(income); 
    context.SubmitChanges(); 
} 

我搜索,但我不能解決這個問題。 乾杯

+0

你使用LINQ to SQL嗎? –

+0

是的。我使用LINQ to SQL –

回答

2

你可以試試這個:

  1. 在可視化設計器中打開表
  2. 點擊您的列 - 屬性
  3. 設置Auto Generated Value = True
  4. 設置Auto Sync = True
  5. 檢查數據類型爲列如果它是Int NOT NULL IDENTITY
+0

感謝您的快速回復。我設置自動生成值來確保,但我不能將自動同步設置爲True。該值不允許設置。此列的「服務器數據類型」爲「Int NOT NULL」,不是「非空」IDENTITY。 –

+0

您確定導致問題的列嗎?你的表中哪些列有標識屬性,並檢查表設計器中的數據類型? –

+0

我不確定。 ID_Income列是標識。 VS中表設計器中此列的數據類型是'Type = int(System.Int32)'和'Server Data Type = Int NOT NULL',我將此類型更改爲'Int NOT NULL IDENTITY'。我的程序運行,但仍然有錯誤:(我很困惑。無論如何,謝謝。 –

1

其中一個列:

income.amount_income = amount; 
income.comment_income = comment; 
income.date_income = date; 

是在數據庫中的標識列。檢查您的表格定義並將其刪除。

+0

這些列都不是身份。我更改ID列中的參數(在上面的帖子中),我的問題解決了。 –

相關問題