【问题标题】:Null Value for datagridview cell vb.netdatagridview 单元格 vb.net 的空值
【发布时间】:2013-06-20 03:19:34
【问题描述】:

如何在 datagridview 中获取 null 值我在单元格验证事件中执行了此操作,但它似乎有效。我希望用户添加一个新行,有人强迫他提供一个 ID 或删除该行。我究竟做错了什么。这不是一个如何做的问题。这是一个什么是错的问题。所以现在它检测到 null 但是一旦我更正了单元格,它仍然允许我离开该行。

          If DataGrid.CurrentCell.ColumnIndex = 0 Then
        If IsDBNull(DataGrid.CurrentCell.Value) Then
            Msgbox("Cannot be Null")
              e.cancel = true
        ElseIf Not IsDBNull(DataGrid.CurrentCell.Value) Then
              e.cancel = False

        End If
    End If

【问题讨论】:

    标签: vb.net visual-studio-2012 datagridview


    【解决方案1】:

    所以我尝试了这个,它对我有用。它只是使用 e.formatedvalue。当前单元格值是编辑前后的单元格值,而格式化值是正在键入的值。我想我现在明白了,所以这里是编码

                  If grdDataGrid.CurrentCell.ColumnIndex = 2 Then
            If e.FormattedValue = "" Or IsDBNull(e.FormattedValue) Then
                MsgBox("Cannot be Null")
                e.Cancel = True
                Exit Sub
    
            End If
        End If
    

    它们也是不同的方法,例如将列属性调整为不允许为空,但由于列属性继承自数据库,我决定使用它。

    【讨论】:

      【解决方案2】:

      我认为这应该可行...

      If DataGrid.CurrentCell.ColumnIndex = 0 Then
          If IsDBNull(DataGrid.CurrentCell.Value) Then
                Msgbox("Cannot be Null")
                e.cancel = true
                exit sub
          End If
      End If
      

      【讨论】:

      • 在我通过添加值更正单元格后仍然相同,但由于 e.cancel,我仍然无法离开该行。这就是为什么我添加了他 elseif。但是我将它放在单元格验证中是否正确?
      • @shaikibrahim .. 你把这个放在细胞验证事件中了吗?
      • 这是cellvalidating中唯一的代码还是下面还有其他代码?
      • 它们是下面的更多代码,但这些代码适用于那些工作得很好的整数。这段代码确实告诉我该值为空,但它只验证一次。我尝试了一个 for 循环,它可以工作,但 msgbox 不断弹出
      【解决方案3】:

      解决此问题的另一种方法是将新数据网格单元格的默认空值显式设置为您正在检查的值。例如,如果要提取字符串值,请将 null= 设置为空字符串。您可以使用属性面板进行设置。

      【讨论】:

      • 虽然这可能是一个有效的答案,但您可能希望显示您试图解释的代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多