标签: dbnull

使用LINQ过滤DBNull

NULL当我明确过滤掉Where子句中的那些行时,为什么以下查询会为具有桶值的行引发下面的错误?

Dim query = From row As dbDataSet.conformalRow In dbDataSet.Tables("conformal") _
            Where Not IsDBNull(row.Cal) AndAlso tiCal_drop.Text = row.Cal _
            AndAlso Not IsDBNull(row.Tran) AndAlso tiTrans_drop.Text = row.Tran _
            AndAlso Not IsDBNull(row.barrel) _
            Select row.barrel
If query.Count() > 0 Then tiBarrel_txt.Text = query(0)
Run Code Online (Sandbox Code Playgroud)

Run-time exception thrown : System.Data.StrongTypingException - The value for column 'barrel' in table 'conformal' is DBNull.

如何重写我的查询/条件以按照我的意图工作?

linq vb.net null dbnull

5
推荐指数
1
解决办法
8450
查看次数

通过OleDB读取Excel文件时,DBNull在非空单元格中

我使用OleDB来读取Excel文件.其中一列具有"通用"格式,并且包含字母和值仅由数字组成的字符串.检索字符串值没有问题,但检索纯数值DBNull.

怎么解决?

我使用以下连接字符串打开Excel 2003文件(xls):

"Provider=Microsoft.Jet.OLEDB.4.0;
 Data Source=C:\\file.xls;
 Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\""
Run Code Online (Sandbox Code Playgroud)

c# oledb excel dbnull

5
推荐指数
1
解决办法
1万
查看次数

将空白字段值传递给存储过程ASP .NET C#

如果textBox字段为空,我想将SQL Server 2008数据库表中的所有行返回到SQL数据源.所以我用一个if @date IS NULL子句创建了一个存储过程.

虽然存储过程似乎在Visual Studio 2008中正常工作,但实际网页没有显示任何结果.

我猜我必须向DBNull存储过程发送一个值if if textBox.Text == string.Empty.我试过了,SqlDataSource1.SelectParameters.Add但似乎我得到转换错误DBNull.Value到字符串.

这是我的问题的根源还是我错过了其他的东西?DBNull.Value如果文本字段为空,我将如何传递到存储过程?

.net sql sql-server asp.net dbnull

5
推荐指数
1
解决办法
6833
查看次数

在PostgreSQL(可能还有其他引擎)中,为什么UNION语句认为NULL值相同,而UNIQUE约束则不然?

我知道SQL标准允许列中的多个NULL值是UNIQUE约束的一部分.

我不明白为什么UNION构造(至少在PostgreSQL中)将NULL值视为相同.例如:

$ select * from tmp_a;
 a | b
---+---
 a | b
 a |
   |
(3 rows)

$ select * from tmp_b;
 a | b
---+---
 a | c
 a |
   |
(3 rows)

$ select a, b from tmp_a union select a, b from tmp_b order by 1, 2;
 a | b
---+---
 a | b
 a | c
 a |
   |
(4 rows)
Run Code Online (Sandbox Code Playgroud)

sql union null dbnull duplicates

5
推荐指数
1
解决办法
442
查看次数

什么是VB.NET相当于C#的默认关键字?

可能重复:
Bug ?? 如果通过三元运算符为可空整数赋值,则它不能为空

虽然这个问题可能看起来像是许多问题的重复,但实际上却被问到了一个具体的原因.拿这个代码,例如:

Dim n As Integer? = If(True, Nothing, 1)
Run Code Online (Sandbox Code Playgroud)

在那个代码中,三元表达式应该返回Nothing,但是它将n设置为0.如果这是C#,我可以说它default(int?)会完美地工作.现在看起来我将不得不抛弃三元并使用常规的If块,但我真的想使用三元组.

如果没有什么是真正的VB.NET等同于C#的默认值,你怎么能解释这种行为?

vb.net dbnull default nullable ternary

5
推荐指数
1
解决办法
1473
查看次数

将null转换为某些东西?

今天我和一位同事进行了这次有趣的讨论.我们在C#中讨论两段代码.

代码片段1:

if(!reader.IsDBNull(2))
{
  long? variable1 = reader.GetInt64(2)
}
Run Code Online (Sandbox Code Playgroud)

代码片段2:

long variable1 = reader.IsDBNull(2) ? (long?) null : reader.GetInt64(2)
Run Code Online (Sandbox Code Playgroud)

问题是:将null转换为可空的long是一个好习惯吗?或者你宁愿使用传统的if语句来避免强制转换null为可空的长.

.net c# dbnull casting nullable

5
推荐指数
1
解决办法
2万
查看次数

LINQ用空字符串替换DBNull

在这个例子中,产生一个错误,如果任一row.FirstNamerow.LastNameNULL.

如何重写该Select子句,将DBNull值转换为空字符串""

Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
            Select row.FirstName, row.LastName
Run Code Online (Sandbox Code Playgroud)

注意:由于DataSet是强类型的.我可以使用row.isFirstNameNull(),但IIF(row.isFirstNameNull(), "", row.FirstName)由于引用了所有参数,因此无法工作.

linq vb.net null dbnull

4
推荐指数
1
解决办法
4043
查看次数

对空字符串和DBNull感到困惑

我正在寻找一些我正在研究的.net程序的代码.该程序的前一位作者在一年多前向我提供了代码.突然间,我看到一个我没有触及的代码抛出的异常:

if ((string)row["LevelName"] != "ABC")
Run Code Online (Sandbox Code Playgroud)

例外情况是"无法将类型为'System.DBNull'的对象强制转换为'System.String'.

我认为该字符串是一个可以为空的数据类型,所以我怎么可能得到这个异常?

.net sql string null dbnull

4
推荐指数
2
解决办法
1180
查看次数

如何在VB.net中处理SqlDataReader null值

我有以下代码执行查询并返回结果.但是,我环顾四周并找到一些例子来处理空值,但是我收到一个错误:"当没有数据存在时无效的读取尝试." 我也得到了错误:"从类型'DBNull'转换为'Decimal'类型无效."

有人可以帮我解决这个代码,以防止空值崩溃我的程序?

Private Sub EFFICIENCY_STACKRANK_YTD(ByVal EMPLOYEE As String)

    Dim queryString As String = "SELECT " & _
    " (SELECT CAST(SUM(TARGET_SECONDS) AS DECIMAL)/ CAST(SUM(ROUTE_SECONDS) AS DECIMAL) FROM dbo.APE_BUSDRIVER_MAIN WITH(NOLOCK) WHERE APE_AREA_OBJID = " & lblAreaOBJID.Text & " AND EMPLOYEE_NAME = '" & EMPLOYEE & "' AND YEAR_TIME = '" & cbYear.Text & "' AND ACTIVE = 1) AS RESULT1" & _
    " FROM dbo.APE_BUSDRIVER_MAIN "


    Using connection As New SqlConnection(SQLConnectionStr)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As …
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net dbnull sqldatareader

4
推荐指数
2
解决办法
2万
查看次数

DBNull检查ExecuteScalar

命令的存储过程可以返回null.是否正确检查返回值是否为null或者是否还要检查obj是否为null?

object obj = command.ExecuteScalar();
int id = -1;
if (DBNull.Value == obj)
{
   id = Convert.ToInt32(obj );
}
Run Code Online (Sandbox Code Playgroud)

c# sql dbnull

4
推荐指数
2
解决办法
8318
查看次数

标签 统计

dbnull ×10

null ×4

sql ×4

vb.net ×4

.net ×3

c# ×3

asp.net ×2

linq ×2

nullable ×2

casting ×1

default ×1

duplicates ×1

excel ×1

oledb ×1

sql-server ×1

sqldatareader ×1

string ×1

ternary ×1

union ×1