2011-04-24 31 views
0

我有這樣的代碼:C# - 添加新的行數據集

DataRow myNewRow; 
    myNewRow = hRAddNewDataSet.Vication.NewRow(); 
    myNewRow["EmployeeID"] = Convert.ToInt32(employeeIDTextBox.Text); 
    myNewRow["VicationDate"] = vicationDateDateTimePicker.Value; 
    myNewRow["VicationSubject"] = vicationSubjectTextBox.Text; 
    myNewRow["VicationType"] = Convert.ToInt32(vicationTypeComboBox.SelectedValue); 
    myNewRow["Time"] = Convert.ToInt32(timeTextBox.Text); 
    myNewRow["VicationAs"] = Convert.ToInt32(vicationAsComboBox.SelectedValue); 
    myNewRow["StatementNo"] = statementNoTextBox.Text; 
    myNewRow["StatementDate"] = statementDateDateTimePicker.Value; 
    myNewRow["Info"] = infoTextBox.Text; 
    hRAddNewDataSet.Vication.Rows.Add(myNewRow); 

當我運行此代碼,這將增加新行,因爲我想要的,但它也將更新當前行取決於

vicationBindingSource.Position 

我該如何解決這個問題?

+0

可能要重構'vication'到'vacation' – briantyler 2011-04-24 09:31:18

+0

@B泰勒:爲什麼我做對子級那?? – Saleh 2011-04-24 09:33:10

+0

「更新當前行」是什麼意思?將另一行設置爲當前?更新當前行中的值? – DarkSquirrel42 2011-04-24 09:42:32

回答

1

因爲有一個數據綁定的所有更改到控件的綁定屬性,當你進入你的價值新行會被寫入到數據源

左右(控制的成功驗證後正常),你實際上改變的是當前行的第一

值,你應該使用的AddNew()方法添加一行的BindingSource

+0

我應該在哪裏調用這個方法?這個方法不需要任何參數,所以我應該添加它? – Saleh 2011-04-24 10:25:43

+0

好吧,我不知道你的應用程序,但是當你調用AddNew()時,一個新行將被插入到你的數據表中,這個新行將成爲當前行。因此您可能需要將該調用放入一個單擊處理程序,並綁定到按鈕的Click事件 – DarkSquirrel42 2011-04-24 13:23:18