簡體   English   中英

將空值分配給SQL中的十進制字段

[英]Assign null value to a decimal field in SQL

我想在SQL 2014的字段中分配null value ,該字段的數據類型為decimal 我嘗試使用這些代碼,但沒有得到想要的方式(假設存在其他字段名和值。)

query = "INSERT INTO DBNAME.TLTRPRGP(DECIMALVAL) VALUES(@DECIMALVAL)"
params = New String() {"BLGSCD"}
values = New String() {Nothing}

SaveUpdateDelete(query, params, values)


query = "INSERT INTO DBNAME.TLTRPRGP(DECIMALVAL) VALUES(@DECIMALVAL)"
params = New String() {"BLGSCD"}
values = New String() {DbNull.Value}

SaveUpdateDelete(query, params, values)


query = "INSERT INTO DBNAME.TLTRPRGP(DECIMALVAL) VALUES(@DECIMALVAL)"
params = New String() {"BLGSCD"}
values = New String() {VbNull}

SaveUpdateDelete(query, params, values)


Private Sub SaveUpdateDelete(ByVal sql As String, ByVal parameters() As String, ByVal Values() As String)
    If con.State = ConnectionState.Open Then
        con.Close()
    End If
    con.Open()

    Dim command As New SqlCommand
    command = New SqlCommand(sql, con)

    For i = 0 To parameters.Count - 1
        command.Parameters.AddWithValue("@" & parameters(i).ToString, Values(i))
    Next
    command.CommandText = sql
    command.ExecuteNonQuery()

    con.Close()
End Sub

第一個代碼returns 0 第二個返回語法錯誤,指出"Value System.DbNull.Value cannot be converted to String" 第三代碼returns 1 所有這些代碼均未能返回正確的值,該值應該為NULLEMPTY 還有什么可以嘗試的?

問題在於值的數據類型:您將其約束為字符串,但是有些值無法轉換為字符串(例如: DBNull.Value )。

解決方案是將通用object用作傳遞給函數SaveUpdateDelete的參數的數據類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM