我有點新的與BindingSources和DataNavigators(以及VB.NET)編程,所以這裏是我的問題/問題。Winform的文本和複選框綁定到bindingsource與datanavigator添加記錄問題
我在VB 2010中編寫一個應用程序,用戶將在後臺更新SQL 2008 R2服務器中的數據。設計模式下的表單具有BindingSource,DataSet和數據和複選框的各種文本框以及表單底部的DataNavigator。
當表單加載時,加載DataAdapter並加載數據集。 (省略的連接代碼,「text_table」是在SQL服務器的測試表。
frmDataAdapter = New SqlClient.SqlDataAdapter(SQL_Query, frmConnection)
frmConnection.Open()
frmDataAdapter.FillSchema(frmDataSet, SchemaType.Source, "test_table")
frmDataAdapter.Fill(frmDataSet, "test_table")
我綁定的BindingSource到DataSet併到DataNavigator ...
With frmBindingSource
.DataMember = "test_table"
.DataSource = frmDataSet
End With
frmBindingNavigator.BindingSource = frmBindingSource
我綁定文本框和複選框到BindingSource ...
With Me
.Date_Logged.DataBindings.Add("Text",frmBindingSource, "DateLogged", True, DataSourceUpdateMode.OnValidation, vbNullString, "MM/dd/yyyy")
.Prepared_By.DataBindings.Add("Text", frmBindingSource, "PreparedBy", False, DataSourceUpdateMode.OnValidation, vbNullString)
.Issue_Placement.DataBindings.Add("Text", frmBindingSource, "IssuePlacement", False, DataSourceUpdateMode.OnValidation, vbNullString)
.Completed.DataBindings.Add("Checked", frmBindingSource, "Completed", False, DataSourceUpdateMode.OnValidation, False)
End With
的問題是,雖然「已完成」複選框被綁定到「frmBindingSource」,如果我按在BindingNavigato添加記錄按鈕所有其他控件(文本框)都不清除,以便用戶可以輸入新數據,但是隨着DataNavigator中的計數遞增,確實會創建新記錄。 (在這一點上,我通常停止程序實際上保存任何東西到桌子上。)
如果我刪除「完成」複選框的綁定,然後再試一次,當我按下添加記錄按鈕時,其他文本框清除因爲他們應該。把「完成」複選框綁定回去,它停止工作。
SQL服務器中的「Completed」字段爲「bit」,默認值爲「0」,因此所有數據都有有效的條目,「Completed」字段中沒有任何值爲NULL。我嘗試過用各種方法來綁定「Completed」複選框,並始終存在相同的問題。
目前沒有驗證代碼或任何其他真實事件,因爲這是在項目的開始,但它有點煩人,因爲我需要使用複選框。
任何人有任何想法我在這裏做錯了嗎?