【发布时间】:2011-10-04 08:52:22
【问题描述】:
我的问题:
我有一个DataSet,里面有多个DataTables。
所有这些DataTables 都有一个名为“Id”的DataColumn,其中DataType 是System.Guid。
此类表格的一个简短示例:
+--------------------+
| User |
+--------------------+
| *Id as System.Guid |
| Username as String |
| /* more columns */ |
+--------------------+
我将此DataTable 分配给DataGridView。 DataGridView 配置为允许创建、编辑和删除条目。
当用户现在创建一个新条目并保存它时,会出现“Id”未设置的异常。
我的问题:
如何为新条目自动生成一个新的System.Guid?
我目前的想法:
- 在
dataSet.dataTable.Columns['Id'].DefaulValue中指定一些魔法值。 (类似于<DBNull>) - 在
dataSet.dataTable上使用触发器之类的东西来监听新行。它必须在在行得到验证之前执行 - 与触发器相同,但在
dataGridView上。
我的尝试:
-
DataGridView的这些事件:RowsAdded、UserAddedRow、RowValidating、DefaultValuesNeeded
如果有人能给我一个可行的解决方案或提示,那就太棒了!
~克里斯
【问题讨论】:
-
但是如果用户将新行添加到 DataTable,我想象它通过使用某个函数 AddRow(DataRow row) 在代码中执行,如果只是在该函数中放置注入唯一 ID 值的代码呢?
标签: c# datagridview dataset guid