我最近開始學習.net,并撰寫了一個基本的 sql 連接資料輸入表單。我幾乎所有的資料型別都是整數或小數。有時我需要將文本框保持為空并輸入“NULL”資料,我收到此錯誤“輸入字串格式不正確”。
我該如何解決這個錯誤?關鍵; 我不想在sql server中輸入“0”它必須是“NULL”,因為我使用一些圖表來跟蹤所有這些資料,所以當有資料等于“0”時它毀了我的圖表。據我從研究中了解到,Tryparse 適合它,但我找不到任何資訊可以在 .net 中正確使用它。
我將在下面分享我的轉換代碼。
Try
Dim command As New SqlCommand()
command.Parameters.Add("A", SqlDbType.Decimal).Value = Decimal.Parse(A)
command.Parameters.Add("B", SqlDbType.Int).Value = Integer.Parse(B)
command.Parameters.Add("C", SqlDbType.Decimal).Value = Decimal.Parse(C)
command.Parameters.Add("D", SqlDbType.Decimal).Value = Decimal.Parse(D)
command.Parameters.Add("E", SqlDbType.Decimal).Value = Decimal.Parse(E)
command.Parameters.Add("F", SqlDbType.Decimal).Value = Decimal.Parse(F)
command.Parameters.Add("G", SqlDbType.Int).Value = Integer.Parse(G)
command.Parameters.Add("H", SqlDbType.Int).Value = Integer.Parse(H)
c.CUD(command, sql)
list()
clear()
MessageBox.Show("Data Successfully Saved")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
uj5u.com熱心網友回復:
command.Parameters.Add("strokeTB", SqlDbType.Decimal).Value = If(strokeTB.TextLength = 0, CObj(DBNull.Value), Decimal.Parse(strokeTB.Text))
這假設您已經驗證了 的內容,TextBox并保證它為空或包含有效值Decimal。
此If運算子類似于舊IIf函式,但更好,因為它會短路,即第三個引數運算元僅在第一個運算元為 時才計算False。因為IIf是一個函式,它首先評估所有三個引數,所以Decimal.Parse仍然會被呼叫并且它會失敗。使用If,Decimal.Parse只會在有要決議的文本時被呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/503730.html
