0

我想将我的一列的数据类型更改DataGridViewDouble. 这是因为我有要显示的数据,DataGridView我需要更新/编辑其中的值数据DataGridView,该数据类型是Double. 需要将一列(有很多行)更改为双精度类型。我想更改它,因为我想将该值与另一列上的数据值进行比较。在我的数据库 PostgreSQL 中,我使用该列的双重类型。当我用上面的代码运行我的程序时,它显示消息框,上面写着“从字符串'更新 hasillab set wbc ='10'I”转换为'Double'类型无效。这不像我的预期

此代码不起作用:

For i As Integer = 0 To dgv_hasillab.Rows.Count - 1
    dgv_hasillab.Columns(1).CellTemplate.ValueType = GetType(String)
Next
4

1 回答 1

0

可能是一个迟到的答案,但无论如何我都会在寻找我也面临的这个问题的解决方案之后分享它。我找到的唯一解决方案是在将其连接到 DataGridView 之前使用所需的数据类型制作另一个数据表副本,然后将修改后的数据表副本填充到 DataGridView。

此代码将有所帮助:

Dim datatableAllString As New DataTable

            For Each col As DataColumn In ORIGINALTABLE.Columns
                datatableAllString.Columns.Add(col.ColumnName, GetType(String))
            Next

            Dim newrow As DataRow

            For Each r As DataRow In ORIGINALTABLE.Rows
                newrow = datatableAllString.NewRow
                For i As Int32 = 0 To datatableAllString.Columns.Count - 1
                    newrow(i) = r.ItemArray(i).ToString()
                Next i
                datatableAllString.Rows.Add(newrow)
            Next r

           ORIGINALTABLE.Dispose()

            MY_DGV.DataSource = datatableAllString

您可以根据您在代码循环时选择的任何列的 GetType() 函数中的要求更改数据类型。

于 2019-03-07T22:20:47.627 回答