2012-10-06 40 views
0

我想在Visual Basic中將數據加載到datagridview中,但得到此錯誤。從'DBNull'類型到'Decimal'類型的轉換無效。 - Datagridview從數據庫加載數據時發出的問題

從'DBNull'類型到'Decimal'類型的轉換無效。 - Datagridview從數據庫加載數據時的問題,

請在編寫回復時記住我是一個完整的新手。

而且通過我已經試過一些的數值後加的ToString方式,

Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick 
    Dim i As Integer 

    Me.TextBox1.Text = DataGridView1.Item(0, i).Value.ToString 
    Me.TextBox8.Text = DataGridView1.Item(1, i).Value.ToString 
    Me.TextBox9.Text = DataGridView1.Item(2, i).Value.ToString 
    Me.TextBox11.Text = DataGridView1.Item(3, i).Value.ToString 
    'valoren_code' 
    Me.TextBox3.Text = DataGridView1.Item(4, i).Value.ToString 
    Me.TextBox13.Text = DataGridView1.Item(5, i).Value.ToString 
    Me.TextBox15.Text = DataGridView1.Item(6, i).Value.ToString 
    Me.TextBox14.Text = DataGridView1.Item(7, i).Value.ToString 
    Me.NumericUpDown6.Value = DataGridView1.Item(8, i).Value.ToString 
    Me.DateTimePicker2.Text = DataGridView1.Item(9, i).Value.ToString 
    Me.ComboBox1.SelectedItem = DataGridView1.Item(10, i).Value.ToString 
    Me.ComboBox8.SelectedItem = DataGridView1.Item(11, i).Value.ToString 
    Me.ComboBox2.SelectedItem = DataGridView1.Item(12, i).Value.ToString 
    Me.ComboBox3.SelectedItem = DataGridView1.Item(13, i).Value.ToString 
    Me.ComboBox4.SelectedItem = DataGridView1.Item(14, i).Value.ToString 
    Me.ComboBox5.SelectedItem = DataGridView1.Item(15, i).Value.ToString 
    Me.ComboBox6.SelectedItem = DataGridView1.Item(16, i).Value.ToString 
    Me.ComboBox7.SelectedItem = DataGridView1.Item(17, i).Value.ToString 
    Me.ListBox1.SelectedItem = DataGridView1.Item(18, i).Value.ToString 
    Me.NumericUpDown8.Text = DataGridView1.Item(19, i).Value.ToString 
    Me.NumericUpDown7.Text = DataGridView1.Item(20, i).Value.ToString 
    Me.NumericUpDown5.Text = DataGridView1.Item(21, i).Value.ToString 
    Me.NumericUpDown13.Text = DataGridView1.Item(22, i).Value.ToString 
    Me.NumericUpDown14.Value = DataGridView1.Item(23, i).Value.ToString 
    'mid_trade_clean_price_proximity 
    Me.NumericUpDown15.Value = DataGridView1.Item(24, i).Value.ToString 
    Me.NumericUpDown16.Value = DataGridView1.Item(25, i).Value 
    Me.TextBox2.Text = DataGridView1.Item(26, i).Value.ToString 
    Me.ListBox3.SelectedItem = DataGridView1.Item(27, i).Value.ToString 
End Sub 

回答

2

DBNull.Value意味着數據庫返回NULL爲特定的行/列。

這不是可以分配給Decimal的值,因此是錯誤。現在

,你可以使用Nothing當你DBNull.Value,但同樣的,因爲它是值類型(以及所有值類型都有一個值,不能分配Nohthing),這是不是你可以分配給Decimal

使用可空Decimal - Decimal?可以採取Nothing值。或者,測試返回的值以查看它是否爲DBNull.Value,如果是,請不要指定給您的Decimal(默認爲0.0,因此您需要決定應用程序的正確行爲)。

+0

感謝您的回覆,但我該怎麼做? – user1712552

+0

@ user1712552 - 你會怎麼做?請注意,您已發佈**無代碼**,因此我們無法談論任何具體的事情。 – Oded

+0

如何使用可爲空的小數? – user1712552

相關問題