当前位置:  开发笔记 > 编程语言 > 正文

错误:<target> .ColumnName和<source> .ColumnName具有冲突的属性:DataType属性不匹配

如何解决《错误:<target>.ColumnName和<source>.ColumnName具有冲突的属性:DataType属性不匹配》经验,为你挑选了1个好方法。

我正在尝试使用DataTable.Merge()选项合并多个Excel文件

    For Each fileName As String In Directory.GetFiles("C:\TEMP\.", "*.xls")
        Dim connectionString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=""Excel 8.0;HDR=NO;IMEX=1;""", fileName)
        Dim adapter As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString)
        Dim ds As New DataSet
        adapter.Fill(ds, "anyNameHere")
        Dim TempTable As DataTable
        TempTable = ds.Tables.Item("anyNameHere")
        table1.Merge(TempTable)
        MsgBox(fileName)
    Next
    DataGridView1.DataSource = table1
    MsgBox(table1.Rows.Count)

但在合并时会出现以下错误

.ColumnName and .ColumnName have conflicting properties: DataType property mismatch.

这是因为excel中的一列被读作文本而另一列被读为double,而两者都有数值.

为了避免这种情况,我还在连接字符串中提到了IMEX = 1,仍然出现此错误.



1> Sachin Chava..:

在合并中使用MissingSchemaAction.Ignore作为MissingSchemaAction参数

table1.Merge(TempTable, True, MissingSchemaAction.Ignore)

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有