16,554
社区成员
发帖
与我相关
我的任务
分享
Dim Type_Column As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn
Type_Column.HeaderText = "材料类型"
Type_Column.Name = "Obj_Name"
'定义DGV下拉列表列
Dim sql As String = "select Obj_Type from ObjectType_List"
da = New OleDbDataAdapter(sql, cn)
ds = New DataSet
'准备查询所有材料类型
da.Fill(ds, "FillComboBoxByObjType")
Dim RowsCount = ds.Tables(0).Rows.Count
'建立数据集,统计记录数
Dim i
For i = 0 To RowsCount - 1
Dim Type As String = ds.Tables(0).Rows(i)(0).ToString
Type_Column.Items.Add(Type)
Next
'将查询结果(数据集)添加到Combobox中
cn.Close()
ObjectList_DataGridView.Columns.Insert(0, Type_Column)
'将下拉列表列插入到DGV第一列
For i = 0 To ObjectList_DataGridView.Rows.Count - 1
ObjectList_DataGridView.Rows(i).Cells(0).Value = ObjectList_DataGridView.Rows(i).Cells(2).Value
Next
'将下拉列表的默认值设为与DS中材料类型一致
ObjectList_DataGridView.Columns.RemoveAt(2)
'删除材料类型列,用combobox替换
Public Function GetIDByType(ByVal Obj_Type As String) As String
DBcon()
Dim sql As String = "Select Type_ID from ObjectType_List where Obj_Type = '" + Obj_Type + "'"
da = New OleDbDataAdapter(sql, cn)
ds = New DataSet
da.Fill(ds, "GetIDByType")
Dim Type_ID As String = ds.Tables(0).Rows(0)(0).ToString
Return Type_ID
End Function
这样一来,每行都要查询一次,如果有很多行的话,加载速度会很慢。
有什么好的解决办法吗?谢谢!