dtNew = TryCast(bs.DataSource, DataTable).GetChanges()
If (dtNew IsNot Nothing) Then
For Each dr As DataRow In dtNew.Rows
Select Case (dr.RowState)
Case DataRowState.Added
Dim strSQLDelete As String = String.Empty
strSQLDelete = String.Format("insert into employeebenefittran (empbenefitcode,amount,calamount,refno,taxclass,source,empbenefitdate,period,cycle,empno) values ('{0}',{1},{1},'{2}','{3}','{4}','{5}','{6}','{7}','{8}')", dr(0), dr(1), "", dr(2), "Y", Date.Parse(String.Format("{0}-{1}-{2}", strPeriod.Substring(0, 4), strPeriod.Substring(4, 2), 1)), strPeriod, "0E", strEmpNo)
Using sqlConn As New SqlConnection(sDBConnection)
If sqlConn.State = ConnectionState.Closed Then sqlConn.Open()
Using cmdSQLDelete As New SqlClient.SqlCommand(strSQLDelete, sqlConn)
cmdSQLDelete.ExecuteNonQuery()
End Using
If sqlConn.State = ConnectionState.Open Then sqlConn.Close()
End Using
End Select
Next
End If
我已經編碼插入從DataGridView,與數據源我新添加的數據。但是,我發現在完成一行數據中的鍵之後,我總是需要點擊下一行,否則它將不會發現我的數據源或數據表並跳過插入。 *意思dtNew將永遠是沒有什麼,直到我點擊datagridview上的新行,這不是一個好的用戶體驗。從DataGridView插入數據到新添加的行狀態
你對此有什麼想法嗎?
當他們添加一個新行時,可能會給他們一個表格來填寫? – ThatGuy
我在DataTable的getchange之前使用了最虛擬的方法gcvYTDBIK.AddNewRow()來暫時解決這個問題。但是,我不確定這是否會引發其他問題,因爲這是一個「技巧」。感謝ThatGuy。 –