首页 > 解决方案 > OleDb 忽略以 0 开头的文本

问题描述

我正在使用 OleDbDataAdapter

我正在尝试将数据从 excel 获取到 DataTable,这是我的代码;

var conn = new OleDbConnection(strConn);
        var myCommand = new OleDbDataAdapter(" SELECT * FROM [UPLOADFILE$] ", strConn);
        var inputTable = new DataTable();
        try
        {
            myCommand.Fill(inputTable);
        }

这是我的Conn Str;

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                          "Data Source=" + "MyPath" + ";" +
                          "Extended Properties=\"Excel 8.0;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"";

不知何故,它消除了以“0”开头的字符串,但其他都可以。

我也使用了以下组合;

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + "MyPath" + ";" +
                      "Extended Properties=\"Excel 8.0;IMEX=0;TypeGuessRows=0;ImportMixedTypes=Text\"";

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + "MyPath" + ";" +
                      "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"";

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + "MyPath" + ";" +
                      "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"";

提前致谢!

我的尝试;

Excel 8.0;HDR=No;IMEX=1;

标签: c#exceloledboledbdataadapter

解决方案


对于它的价值,这是我通过 OleDb 读取 excel 的首选连接字符串。

strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
    filename + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'; ";

对于它的价值,我在一些数据上进行了尝试,当我的文本带有前导零时没有任何问题。

您的数据是在表格中还是只是一个标准范围?它有标题吗?你能展示一些出错的样本数据吗?


推荐阅读