我花了大量的時間試圖找到這個答案。我認爲這很容易,但沒有什麼特定於我想要做的。所以我希望有人能幫忙。將空字符串轉換爲NULL雙重
我將價值從一個系統帶到另一個系統。我有幾個字段以字符串形式出現,但他們需要作爲DOUBLE進入新系統。當存在空字符串(「」)並且它試圖將其存儲爲double時,就會出現問題。我嘗試了一切。
dbnull.value
Double.TryParse
CDBL()
Double?
VAL()
等...不能得到這個工作,我不知道爲什麼。
所以這裏是代碼:
Dim specvertclr As String = dt23.Rows(0).ItemArray.GetValue(38).ToString()
然後當我插入該到我的數據庫我得到的錯誤,因爲該字段類型是數字,我想插入「」
我也有這工作:
Dim specvertclr As String
If dt23.Rows(0).ItemArray.GetValue(38).ToString() = "" Then
specvertclr = CStr(0)
Else
specvertclr = dt23.Rows(0).ItemArray.GetValue(38).ToString()
End If
但這個問題是它插入一個0值和0是不一樣的NULL。當源數據庫中的字符串爲空時,我希望目標數據庫(SQLCE)中的NUMERIC字段爲EMPTY。
任何幫助?
這是我的嘗試:
Dim specvertclr As Nullable(Of Double) = CType(dt23.Rows(0).ItemArray.GetValue(38).ToString(), Double?)
,然後我的插件是基本的程序將引發一個錯誤甚至送過來了。我知道這部分是正確的。
Dim cmd2 As SqlCeCommand = conn.CreateCommand()
cmd2.CommandText = "Insert into [Attr_Bridge] ([VERTCLR]) VALUES (?)"
With cmd2.Parameters
.AddWithValue("P1", specvertclr)
end with
看看Double.TryParse - https://msdn.microsoft.com/en-us/library/system.double.tryparse( v = vs.110).aspx –
字符串不是數字。 _specvertclr_是一個字符串。您需要使用[可空雙精度變量](https://msdn.microsoft.com/en-us/library/b3h38hb0(v = vs.110).aspx) – Steve
我也嘗試過,並且出現以下錯誤:從字符串「」轉換爲「Double」類型無效。 –