db2 从数据库读入词典VB.net

w8f9ii69  于 2023-04-20  发布在  DB2
关注(0)|答案(1)|浏览(196)

我有一个问题,通过从DB2数据库中选择特定记录的所有列并将它们作为数据网格视图显示给用户来解决。用户将选择一条记录,更改列的值并保存。这样做将插入一条更新的记录,所以要做到这一点,我需要列名,因为有些列名可能是空的,* 我必须重新创建记录。*
我想到的唯一方法是创建一个字典,其中包含列名它对应的任何值,以某种方式操作它并执行插入。
例如,如果我不需要列名,我使用 LotsList 作为List(Of LotDTO)。

Using db2reader As OdbcDataReader = db2Com.ExecuteReader
      While db2reader.Read
            LotsList.Add(New LOTDTO With
                             {
                             .LotNo = If(IsDBNull(db2reader("dlot")), "", db2reader("dlot")),
                             .ExpDate = If(IsDBNull(db2reader("ExpDate")), "", db2reader("ExpDate")),

                              }
                         )
       End While

但是如果我使用字典(字符串,LotDTO),该怎么做呢?
Dim SQL As String = "SELECT ITEMID, TRXDATE, TRXTYPE, REFERNO, ... From DB Where ....
也开放的任何建议,是不是超出了初学者的能力。

pu82cl6c

pu82cl6c1#

相反,我建议您使用DataTable对象,它是为这类事情而设计的。
有关如何使用DataAdapter填充DataTable的信息,请参阅this answer(您需要转换代码以使用ODBC类)。
然后可以使用DataGridView.DataSource属性绑定DataTable。
然后使用以下代码从DataGridView中检索更新语句的已编辑值(dgvSource是DataGridView的名称):

Dim dgvr As DataGridViewRow = dgvSource.Rows(intRow)
Dim drw As DataRow = DirectCast(dgvr.DataBoundItem, DataRowView).Row

(don不要只使用.Rows,因为如果用户对datagridview进行排序,这将给予您错误的数据)

相关问题