2010-01-18 78 views
0

我有這個DataGridView和一個BindingNavigator .. 每當我添加一個新條目時,它會返回一個錯誤: 'Column'newsID'不允許爲空。VB.NET 2008中的BindingNavigator

但在我的MySQL數據庫中,newsID列設置爲AutoIncrement。 我將如何解決這個問題?

謝謝!

這裏是我的代碼:

Public Class FormNews 
    Private Sub FormNews_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     'TODO: This line of code loads data into the 'UCWebDataSet.news' table. You can move, or remove it, as needed. 
     Me.NewsTableAdapter.Fill(Me.UCWebDataSet.news) 
    End Sub 

    Private Sub SaveToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripButton.Click 
     Me.Validate() 
     Me.NewsBindingSource.EndEdit() 
     Me.NewsTableAdapter.Update(Me.UCWebDataSet) 
    End Sub 
End Class 
+0

顯示您正在使用的語句,也許我們可以提供幫助。 – Younes 2010-01-18 08:14:28

回答

0

你使用LINQ或數據集?

如果是這樣,您使用設計器來創建數據集?您需要做的是指定要插入的查詢以返回生成的ID輸出。

此鏈接應幫助您更新dataadapters來解決這個問題:

MSDN Forum Post

道歉,如果你正在使用LINQ,我的答案是不相關的。

編輯:剛纔意識到你正在使用MySql。您將需要做一些不同的事情來獲得自動增量值,並且我不記得mysql是否與設計人員一起工作...

0

問題是數據庫使用的自動遞增值在您不知道添加新記錄。我有一個底層SQL Server 2005數據庫的問題。

但是,必須有某種方式來配置類型化數據集(我假設在字段的屬性中),因爲當我在另一個項目上嘗試它時,所有突然的新記錄(其中自動編號爲-1) -2等ID。

一旦插入到數據庫中,就會獲得實際值並替換臨時值。

這可能,但是,只有適用,因爲我使用LINQ在其他項目到SQL ...

您可以嘗試使用虛擬值來填充它(如負滴答計數或東西),然後設置/在插入數據庫後自己檢索「真實」ID。