自动设置列数据类型

时间:2016-05-10 20:57:25

标签: .net vb.net datagridview

我正在使用csv文件作为datagridview的数据源。它运行正常,数据显示,但是当我尝试对数字数据进行排序时,它将其排序为字符串(“9”>“10”)。

当我将数据行添加到datagridview时,我这样做:

Dim data() As String = _textStreamReader.ReadLine.Split(vbTab)
dt.Rows.Add(data.ToArray)

我不想一个接一个地显式添加列,以编程方式设置其数据类型,从而失去了向源数据添加新列的灵活性,并且在datagridview中将其加载得很好(使用新列和所有列) )。

有没有办法测试列中单元格的内容是否为数字并相应地设置列的数据类型?每列都有所有文本或所有浮点数。

1 个答案:

答案 0 :(得分:2)

如果您想坚持阅读CSV并将其解析为DataTable,这是一种执行它的黑客方式。有更优雅的方式,但您需要改变您的设计。

我的表单只有一个名为DataGridView的{​​{1}}。这是代码隐藏的内容。 dgv仅表示内存中的CSV文件。在您的情况下,您将第一个List(Of String())结果传递给ReadLine,然后将其添加AddDataColumns,然后添加后续行。

dt.LoadDataRow

结果:

CSV to DataGrid example