iT邦幫忙

0

System.InvalidCastException: 從字串 ""N/A"" 至類型 'Integer' 的轉換是無效的

  • 分享至 

  • xImage

我想問如何將字符串轉換為整數,因為我嘗試了幾種轉換方法,但仍然有相同的錯誤.
我發現了錯誤,這是因為我嘗試在 Json Convert 中輸入整數. 但sql server表中需要整數.我怎樣才能讓它傳遞空值或使其變為0.有大大能幫忙嗎? 謝謝

Api 回應:

"Data":{
    "name": "Tom",
    "phonenumber" : "N/A"
}

或者

"Data":{
    "name": "Tom",
    "phonenumber" : null
}

編碼:

Dim listArray As String = JsonConvert.SerializeObject(jsonObject.Item("List"))
Dim name As String = If(JsonConvert.SerializeObject(jsonArray(j).SelectToken("Data.name")), Is Nothing, "", Replace(JsonConvert.SerializeObject(jsonArray(j).SelectToken("Data.name")), """", ""))
Dim phonenumber As Integer = if(JsonConvert.SerializeObject(jsonArray(j).SelectToken("Data.phonenumber")), Is Nothing, "", ,Replace(JsonConvert.SerializeObject(jsonArray(j).SelectToken("Data.phonenumber")), """", ""))
Dim con as SqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings("MyConnection").ConnectionString)
Dim sqlStr as String = "Insert Into tblPerson(Name, PhoneNumber) values(@name, @phonenumber)"
Dim cmd as SqlCommand = new SqlCommand(sqlStr, con)
Using cmd
cmd.Parameters.AddWithValue("@name", name)
cmd.Parameters.AddWithValue("@phonenumber", phonenumber)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
sam0407 iT邦大師 1 級 ‧ 2023-09-19 10:17:29 檢舉
phonenumber用Integer?
那以0或00開頭號碼的怎麼辦?
JSON的內容太髒了,建議您先用字串讀進來,作資料清理後再往資料庫塞
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
wdchiang
iT邦新手 2 級 ‧ 2023-09-19 08:36:35

Dim phonenumber As Integer = If(JsonConvert.SerializeObject(jsonArray(j).SelectToken("Data.phonenumber")), Nothing, "")

reborn iT邦新手 5 級 ‧ 2023-09-19 10:11:21 檢舉

我之前嘗試過,不行

wdchiang iT邦新手 2 級 ‧ 2023-09-19 10:17:50 檢舉

Dim phonenumber As Integer?

If jsonArray(j).SelectToken("Data.phonenumber") IsNot Nothing Then
Dim phoneNumberString As String = jsonArray(j).SelectToken("Data.phonenumber").ToString()

If Integer.TryParse(phoneNumberString, phonenumber) Then
Else
End If

Else
End If

我要發表回答

立即登入回答