我正在尝试将数据加载到visual basic中的datagridview中,但是会出现此错误。
从“DBNull”类型转换为“Decimal”类型无效。 - Datagridview从DB加载数据时出现问题
请在写评论时请记住我是一个完整的新手。
顺便说一句,我试图在一些值
之后添加.ToStringPrivate 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
答案 0 :(得分:3)
DBNull.Value
表示数据库已返回特定行/列的NULL
。
这不是可以分配给Decimal
的值,因此是错误。
现在,您可以在获得Nothing
时使用DBNull.Value
,但同样,这不是您可以分配给Decimal
的内容,因为它是值类型(以及所有值类型)有一个值,不能分配Nohthing
)。
使用可以为空的 Decimal
- Decimal?
可以获取Nothing
值。或者,测试返回的值以查看它是否为DBNull.Value
,如果是,请不要分配给Decimal
(默认为0.0
,因此您需要确定什么是适用于您的应用程序的正确行为。)