更改datagridview vb.net中列的数据类型

时间:2018-11-01 03:07:44

标签: vb.net datagridview

我想将DataGridView中一列的数据类型更改为Double。这是因为我要在该DataGridView中显示数据,并且需要从该DataGridView更新/编辑值数据,该数据类型为Double。  需要将一列(具有很多行)更改为双精度类型。我想更改它,因为我想将值与另一列上的数据值进行比较。在我的数据库PostgreSQL中,我使用了该列的双重类型。当我使用上述代码运行程序时,它显示消息框,其中说“从字符串'Update 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

1 个答案:

答案 0 :(得分: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()函数中更改数据类型。