加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#DataColumn:生成一个新的GUID作为默认值?

发布时间:2020-12-16 09:35:58 所属栏目:百科 来源:网络整理
导读:我的问题: 我有一个包含多个DataTables的DataSet. 所有这些DataTable都有一个名为“Id”的DataColumn,其DataType为System.Guid. 这样一个表的一个简短例子: +--------------------+| User |+--------------------+| *Id as System.Guid || Username as Str
我的问题:
我有一个包含多个DataTables的DataSet.
所有这些DataTable都有一个名为“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

如果有人能为我提供工作解决方案或提示,那将是非常棒的!

?克里斯

解决方法

我不确定你为什么说你不能使用DefaultValuesNeeded – 我刚刚测试了它并且它完美地工作:

void dataGridView1_DefaultValuesNeeded(object sender,DataGridViewRowEventArgs e)
{
    e.Row.Cells["Guid"].Value = Guid.NewGuid();
}

我将Guid列的visibility属性设置为false,以便它不显示.创建新行时,该行已填充guid.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读