【问题标题】:Allow to set NULL for datagridview?允许为datagridview设置NULL吗?
【发布时间】:2017-07-14 22:07:00
【问题描述】:

我有以下代码:

DataTable dt = new DataTable();

SQLiteDataReader reader = mycommand.ExecuteReader();
dt.Load(reader);

它调用了一个异常:

System.Exception: '未能启用约束。一排或多排 包含违反非空、唯一或外键的值 '

因为在reader 中,我得到了列元素为NULL 的对象。如何允许DataGridView 接受 NULL 单元格值?

【问题讨论】:

  • 你给我们的信息太少了,我们需要看到更大的代码部分才能尝试。
  • 你的问题与DataGridView(WINFORMS)无关,根据异常。它与 ADO.NET 相关

标签: c# winforms datagridview


【解决方案1】:

老实说,需要有关您的特定问题的更多信息才能彻底回答您的问题,但以下 sn-p 将处理空值。请务必检查this MSDN postthis StackOverflow post 以了解它们是否是更相关的问题,以及this MSDN reference 考虑到您的问题的一般范围,这也可能会有所帮助。它指出:

当具有此单元格样式的 DataGridView 单元格的值为 DBNull.Value 或 null 或用户编辑单元格并按 CTRL+0 时,DataGridView 控件显示 NullValue 属性值。当用户使用此单元格样式编辑单元格并输入此属性的值或按 CTRL+0 时,控件将单元格值设置为 DataSourceNullValue 属性的值,如果 DataSourceNullValue 为 DBNull.Value 并且单元格 ValueType 为 null一个引用类型。当您以编程方式设置 DataGridViewCell.Value 属性时,不会发生这种转换。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
     String value = e.Value as string;
     if ((value != null) && value.Equals(e.CellStyle.DataSourceNullValue)) {
         e.Value = e.CellStyle.NullValue;
         e.FormattingApplied = true;
     }
}

请务必在发帖时进行大量研究并彻底解决您的问题,以便人们可以提供更多帮助。

例如,可以通过查看您的代码和异常假设您正在查询的表存在问题,不允许空值。

【讨论】:

  • 在填充DataTable源时发生错误,而不是在表格中格式化数据之后。
猜你喜欢
  • 2013-09-07
  • 2019-04-20
  • 2012-06-20
  • 1970-01-01
  • 2018-03-09
  • 2015-06-29
  • 2018-06-25
  • 2013-03-28
  • 1970-01-01
相关资源
最近更新 更多