在 RadGrid 中计算其单元格时,SQL Server DB 中的 NULL 值变为“ ”

NULL Value from SQL Server DB becomes " " when evaluating its cell in RadGrid

提问人:SethD02 提问时间:8/7/2023 最后编辑:Dale KSethD02 更新时间:8/7/2023 访问量:47

问:

我有一个由 SQL 数据填充的网格。在我的 dataBound 方法中,我有一个计算特定单元格文本的数值条件,例如:如果 myCell.Text <90

单元格可能具有 NULL 值,因此我想在运行这些条件之前进行检查,以确保单元格不为 null。但是,单元格中的实际文本的计算结果为“nbsp;”(删除了&,所以它将出现在这篇文章中)。我不想对 NOT myCell.Text.Contains(“nbsp”) 之类的东西进行硬编码,因为这感觉很草率和有问题。

If TypeOf e.Item Is GridDataItem Then
    Dim dataItem As GridDataItem = e.Item
    Dim myCell As TableCell = dataItem("Status")
    If Not String.IsNullOrWhiteSpace(myCell.Text) Then

这是我当前的代码,显然字符串“ ”通过了这个条件。

如何正确检查此值?我可以评估其他属性吗?

RADGRID DataItem vb.net SQL Server 字符串

评论

0赞 Charlieface 8/7/2023
我很困惑:是值还是或单个 NBSP 字符?或者它实际上是使用 or 会得到什么?null"&nbsp;"" "DBNull.ValueDataTableDataReader
0赞 SethD02 8/7/2023
@Charlieface myCell.Text 的值实际上是“&nbsp;”
0赞 Charlieface 8/7/2023
那么,这个价值是如何实现的呢?也许您应该在源头、数据库中更正数据?还是在提取数据的语句中?否则,仅检查该字符串有什么问题?“显然字符串”“通过此条件”与问题有何关系?SELECT
0赞 SethD02 8/7/2023
@Charlieface 对不起,我想我只是想了解这个问题,以便我可以以更好的方式实现它?源数据正确,在 sql 中显示 NULL。对不起,如果这是浪费时间,我希望能深入了解为什么会发生这种情况,或者它是否是一个可以在不“作弊”的情况下解决的已知问题
3赞 Craig 8/7/2023
看看这个问题的几个答案,它们讨论的是设置“Null 值”文本,或者是关于 HTML 编码/解码的。如果您不知道,&nbsp;是用于在浏览器中呈现“空格”字符的标准 HTML 输出。似乎您的 RadGrid 期望它应该输出空值(实际上是 Null,或者只是一个空字符串/空格字符) - 但是,显然您并不是特别想要这样。您应该在 RadGrid 上设置一些属性(或属性)来更改此行为(对不起,我不知道具体情况)

答: 暂无答案