DataRowAdding
增加一行时执行,此时新增行(DataRow)已经创建,但并未真正增加到DataTable中,通常在此处对新增行进行默认值的设置。
e参数属性:
DataTable:返回增加行的数据表。
DataRow: 返回新增加的行。
示例一
例如希望新增行的日期设为当前系统日期,姓名设为当前登录用户名,可以将DataRowAdding事件的代码设置为:
e.
DataRow("日期") = Date.Today()示例二
假定表中有一个编号列,希望新增行的时候,编号列能够自动加1,可以将DataRowAdding事件的代码设置为:
e.
DataRow("编号") = e.DataTable.Compute("Max(编号)") + 1这个例子其实没有什么意义的,对于外部表使用自动增量主键列,对于内部表使用表达式列引用内部编号列“_Identify”,是更好的选择。
示例三
如果希望新增行能够自动从最后一行复制全部内容,可以将DataRowAdding事件的代码设置为:
If
e.DataTable.DataRows.Count
= 0 Then
'如果是一个空表
Return
'那么返回
End
If
Dim
dr As
DataRow = e.DataTable.DataRows(e.DataTable.DataRows.Count
- 1)
'获得最后一行
For
Each dc
As DataCol
In e.DataTable.DataCols
e.DataRow(dc.Name)
= dr(dc.Name)
'将最后一行的内容复制到新增行中.
Next
示例四
上面的代码是复制所有列,如果只是复制部分列,可以参考下面的代码:
If
e.DataTable.DataRows.Count = 0 Then '如果是一个空表