【发布时间】:2017-08-15 13:05:58
【问题描述】:
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 上的新行之前将始终一无所有,这不是一个好的用户体验。
你对此有什么想法吗?
【问题讨论】:
-
当他们添加新行时可能会给他们一个表格来填写?
-
我在DataTable的getchange之前使用了最笨的方法gcvYTDBIK.AddNewRow()来临时解决这个问题。但是,我不确定是否会提出任何其他问题,因为这是一个“把戏”。感谢 ThatGuy。
标签: vb.net datagridview