程式碼:
Me.DataGridView1.AutoGenerateColumns = False
Me.DataGridView1.DataSource = dt
'加減項
Dim installss() As Decimal = {-1, 1}
Dim columnID As New DataGridViewComboBoxColumn()
columnID.HeaderText = "加減項"
columnID.Name = "加減項"
columnID.DataPropertyName = "加減項"
columnID.ValueType = GetType(System.Decimal)
columnID.Items.AddRange(installss) 'columnID.Items.AddRange(+1, -1)
'columnID.Items.AddRange(New Object() {-1, +1,})
DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {columnID})
原因:
出现这种问题有两种原因:
1.数据类型不匹配
2.所赋数据项与绑定的数据源中数据不符 结贴!
此次debug為第一種原因:
資料庫的資料型態為 Decimal(13,6)
.NET的資料型態為 Decimal , Object 皆無法成功。
解決(一):
改用DataTable方式...
Me.DataGridView1.AutoGenerateColumns = False
Me.DataGridView1.DataSource = dt
Dim dtttt As DataTable = New DataTable
dtttt.Columns.Add("加減項", GetType(Decimal))
dtttt.Columns.Add("中文", GetType(String))
dtttt.Rows.Add(+1, "加")
dtttt.Rows.Add(-1, "減")
dtttt.TableName = "XXX"
'加減項
Dim installss() As Decimal = {-1, 1}
Dim columnID As New DataGridViewComboBoxColumn()
columnID.HeaderText = "加減項"
columnID.Name = "加減項"
columnID.DataPropertyName = "加減項"
columnID.ValueType = GetType(System.Decimal)
columnID.DataSource = dtttt
columnID.DisplayMember = "中文"
columnID.ValueMember = "加減項"
DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {columnID})
解決(二):
應該要依這個link的方式(類別),來繫結資料... """待測試"""
如何在程式內,直接給DataGridViewComboBoxColumn的下拉選單內容?
如何自訂DataGridView中DataGridViewComboBoxColumn物件
如何自訂DataGridView中DataGridViewComboBoxColumn物件
參考:
C# 類型的預設值 (C# 參考) string就不會出錯,但數值有預設值,所以會出錯...
DataGridView 資料行下拉選單,資料繫結階段顯示 DataGridViewComboBoxCell 值無效
DataGridViewComboBoxCell.GetFormattedValue 方法
给DataGridViewComboBoxCell赋值的问题!
DataGridViewComboBoxColumn值无效
DataGridViewComboBoxColumn值无效
解决方法就是在窗体的构造函数里添加如下代码:
DataGridViewComboBoxColumn的使用 (高招)
Mapping CLR Parameter Data
DataGridView 使用问题
SQL Server 資料型別對應 (ADO.NET).
DataGridView.DataError 事件
DataGridViewDataErrorContexts 列舉型別
Non-String values in DataGridViewComboBoxColumn causing DataErrors in DataGridView
System.ArgumentException:DataGridViewComboBoxCell 值無效 (2)
DataGridViewComboBoxCell 值無效
DataGridView中comboBox数据绑定的问题
DataGridView 的DataGridViewComboBoxColumn 無效值問題
SqlServer中decimal(numeric )、float 和 real 数据类型的区别
What is a good mapping of .NET decimal to SQL Server decimal?
DataGridViewComboBoxCell.GetFormattedValue 方法
给DataGridViewComboBoxCell赋值的问题!
DataGridViewComboBoxColumn值无效
DataGridViewComboBoxColumn值无效
解决方法就是在窗体的构造函数里添加如下代码:
this.dataGridView1.DataError += delegate(object sender, DataGridViewDataErrorEventArgs e) { };
DataGridViewComboBoxColumn的使用 (高招)
Mapping CLR Parameter Data
DataGridView 使用问题
SQL Server 資料型別對應 (ADO.NET).
DataGridView.DataError 事件
DataGridViewDataErrorContexts 列舉型別
Non-String values in DataGridViewComboBoxColumn causing DataErrors in DataGridView
System.ArgumentException:DataGridViewComboBoxCell 值無效 (2)
DataGridViewComboBoxCell 值無效
DataGridView中comboBox数据绑定的问题
DataGridView 的DataGridViewComboBoxColumn 無效值問題
SqlServer中decimal(numeric )、float 和 real 数据类型的区别
What is a good mapping of .NET decimal to SQL Server decimal?
沒有留言:
張貼留言