VB.NET Datagrid视图未显示Integer数据的完整列

时间:2013-12-28 17:27:17

标签: vb.net excel datagridview

我正在努力将Excel数据上传到数据网格视图。 excel包含有关特定项目的资产映射(资产ID,EmpID1,EmpID2,Project#等)的数据(某些资产可能被标记为超过1个关联,因此我有2个EmpId字段和放大器;第二个可能有空值)。在这里,我只是想查询(选择* ..)excel&把它放在一个数据表中(我需要后者使用)&最后在datagrid视图中显示它。虽然数据输出很好,但我观察到vb.net中的一种特殊行为

1)如果前10行中没有数据,则EmpID2列不显示任何数据(完全空白)。即,如果此列的前10行为空,则数据网格视图中整个列为空。

2)如果前10行中至少有一行有值(即使我手动添加一个垃圾数字),那么我可以看到其余行的数据是否正确更新。

代码段:

    Dim query_Assetsmapping As String = "select * from [sheet1$]"
    Dim MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=Asset_Mapping.xls; Extended Properties=Excel 8.0")
    Dim MyCommand = New System.Data.OleDb.OleDbDataAdapter(query_Assetsmapping, MyConnection)
    Dim DtSet = New System.Data.DataTable
    MyCommand.Fill(DtSet)
    MyConnection.Close()
    DataGridView1.DataSource = DtSet.tables(0)

我没有看到任何数据类型问题,因为我只是将数据从excel导出到数据表而没有指定或转换数据类型。

如果需要为datagrid视图属性显式指定任何内容,请帮助我理解,这样我就可以在数据网格中显示整个数据。

注意:EmpId字段是一个6位数字。

1 个答案:

答案 0 :(得分:1)

只需更改连接字符串

即可
Dim MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=Asset_Mapping.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'")