gpt4 book ai didi

vb.net - 在 Double 变量中保留 NULL 值

转载 作者:行者123 更新时间:2023-12-02 07:52:53 24 4
gpt4 key购买 nike

我正在开发一个从 Excel 电子表格导入的 vb.net 应用程序。

If rdr.HasRows Then
Do While rdr.Read()
If rdr.GetValue(0).Equals(System.DBNull.Value) Then
Return Nothing
Else
Return rdr.GetValue(0)
End If
Loop
Else

我使用字符串值来存储 double 值,在准备数据库语句时我会使用以下代码:

If (LastDayAverage = Nothing) Then
command.Parameters.AddWithValue("@WF_LAST_DAY_TAG", System.DBNull.Value)
Else
command.Parameters.AddWithValue("@WF_LAST_DAY_TAG", Convert.ToDecimal(LastDayAverage))
End If

我现在有一些小数点后几位的数据,而且这些数据是用科学计数法放入字符串变量中的,所以这似乎是错误的做法。使用字符串变量开头似乎不对。

如果我使用 double 或小数类型变量,空白 Excel 值显示为 0.0。

如何保留空白值?


注:我试过了

变量为 Nullabe(Of Double)

但是当将值传递给 SQL 插入时,我得到:“可为空的对象必须有一个值。”


解决方法:

通过更改我调用的子程序中参数的数据类型,然后使用 Variable.HasValue 执行有条件的 DBNull 插入来修复。

最佳答案

我不知道您使用哪个 API 来执行数据库插入,但是对于其中的许多 API,包括 ADO.NET,插入空值的正确方法是使用 DBNull.Value .所以我的建议是你在 VB 代码中使用 Nullable(Of Double),但是当需要插入时,你会用 DBNull.Value< 替换任何空值.

关于vb.net - 在 Double 变量中保留 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647558/

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