我是VB.NET的新手。我想將數據從Access數據庫的一個字段收集到列表框中,並將數據從最小值到最大值進行排序。但我收到一條錯誤消息:從字符串「System.Data.DataRowView」轉換爲類型「整數」無效錯誤
「從字符串轉換 」System.Data.DataRowView「 鍵入 '整數' 無效」
我是VB.NET的新手。我想將數據從Access數據庫的一個字段收集到列表框中,並將數據從最小值到最大值進行排序。但我收到一條錯誤消息:從字符串「System.Data.DataRowView」轉換爲類型「整數」無效錯誤
「從字符串轉換 」System.Data.DataRowView「 鍵入 '整數' 無效」
你宣佈arr(i)
陣列整數和你寫arr(i) = resListBox.Items(i).ToString
..
這可能怎麼樣?
假設您的resListBox.Items(i)
的值爲「abc」,那麼abc不能插入到int類型的變量中。即使.ToString
將其轉換爲字符串並傳遞字符串值。
嘗試arr(i) = resListBox.Items(i).Text
但只有當值是整數,否則它將再次拋出異常......!
嘗試將代碼寫入'Try..Catch',以便即使程序正在運行,您也可以在調試模式下查看錯誤...! – bonny
由於bonny已經在他的回答中說過,你不能給一個整數指定一個字符串。
您可以嘗試使用Int32.TryParse方法。通過這種方式,您可以測試該值是否爲整數,然後如果返回true,則可以將其分配給該變量,或者顯示messagebox以顯示value爲null或不是整數。
Dim number As Integer
Dim result As Boolean = Int32.TryParse(resListBox.Items(i).Text, number)
If result Then
arr(i) = resListBox.Items(i).Text
Else
MessageBox.Show("Attempted conversion of '{0}' failed.",
If(resListBox.Items(i).Text Is Nothing, "<null>", resListBox.Items(i).Text))
End If
歡迎來到StackOverflow。 請參考[遊覽], 學習問好問題stackoverflow.com/help/how-to-ask, 做個[mcve]。 請至少提供文字形式的代碼,而不是圖片。 – Yunnosch