gpt4 book ai didi

vb.net - 选项严格和空

转载 作者:行者123 更新时间:2023-12-03 01:41:42 26 4
gpt4 key购买 nike

我不想在数据库中出现空字符串。当一个字段为空时,我希望它也为空。我正在尝试更换

If strStreet = "" Then
cmd.Parameters("@Street").Value = DBNull.Value
Else
cmd.Parameters("@Street").Value = strStreet
End If

使用 VB If 运算符如下

 cmd.Parameters("@Street").Value = If(strStreet = "", DBNull.Value, strStreet)

我从第一个 = 符号右侧所有内容下方的红色波浪线中收到以下消息。“无法推断通用类型,并且 Option Strict On 不允许假定‘对象’。”好的,所以我做了一点 Actor

cmd.Parameters("@Street").Value = If(strStreet = "", CObj(DBNull.Value), strStreet)

红色波浪线消失,绿色波浪线出现在 CObj 下方,表示冗余 Actor 。我是不是该A. 关闭 Option StrictB. 忽略绿色波浪线C. 回到我的 If...Else...End If或者是其他东西??顺便说一句,当我为某些控件的 Text 属性准备字符串时,它在另一个方向上效果很好。

strStreet = If(reader.GetValue(2) IsNot DBNull.Value, reader.GetString(2), "")

我在这里阅读了几个围绕我的问题的问题和答案,但我不太明白。感谢您的关注。

最佳答案

不确定到底是什么触发了冗余转换警告,但使用以下扩展方法,您不应该收到警告,并且如果有很多参数,代码也更少。

Imports System.Runtime.CompilerServices

Module Extensions

<Extension>
Public Function GetDBNullIfEmpty(s As String) As Object
If String.IsNullOrEmpty(s) Then
Return DBNull.Value
Else
Return s
End If
End Function

End Module

然后你可以像这样设置你的参数值:

cmd.Parameters("@Street").Value = strStreet.GetDBNullIfEmpty

关于vb.net - 选项严格和空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46413980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com