C# 并非所有插入的数据都从excell转换为数据库

C# 并非所有插入的数据都从excell转换为数据库,c#,excel-2007,C#,Excel 2007,我有以下代码: ConnectString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=No\""; SheetName = SheetName.Substring(0, SheetName.Length - 5); OleDbConnection Connection = new OleDb

我有以下代码:

ConnectString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=No\"";
        SheetName = SheetName.Substring(0, SheetName.Length - 5);
        OleDbConnection Connection = new OleDbConnection();
        Connection.ConnectionString = ConnectString;
        try {Connection.Open();}
        catch (Exception EX)
        {
            MessageBox.Show(EX.Message);
        }
        OleDbDataAdapter Command = new OleDbDataAdapter("SELECT * FROM [" + SheetName + "$]", Connection);
        DataSet ExcelData = new DataSet();
        try {Command.Fill(ExcelData);}
        catch (Exception EX)
        {
            MessageBox.Show(EX.Message);
        }
        finally
        {
            if (Connection.State != ConnectionState.Closed)
                Connection.Close();
        }
但并非第1列中的所有数据都是插入的-我得到的是空数据为什么?有什么不对劲


提前感谢

从Excel导入时,默认情况下根据前八行的内容猜测列的数据类型。如果给定列的前8行中的值为空,则可能导致该列完全没有数据。这可以在注册表中重写。我建议调查这种可能性。这是一篇好文章


从Excel导入时,默认情况下根据前八行的内容猜测列的数据类型。如果给定列的前8行中的值为空,则可能导致该列完全没有数据。这可以在注册表中重写。我建议调查这种可能性。这是一篇好文章


是的!!!如果我从大值排序到小值排序,效果会很好,但是我如何在不排序的情况下进行排序呢?请按照那篇文章中的描述更新注册表项。这将迫使提供程序在分配数据类型之前读取整个文件,因此如果您处理的是非常大的文件,则可能会影响性能。我更新了注册表项,但仍然不起作用。可能是因为我有Windows 7??可能是Windows 7正在另一个注册表位置查找该值。我从来没有在Windows7环境中调试过这个,但是如果我有什么想法,我会告诉你的。是的!!!如果我从大值排序到小值排序,效果会很好,但是我如何在不排序的情况下进行排序呢?请按照那篇文章中的描述更新注册表项。这将迫使提供程序在分配数据类型之前读取整个文件,因此如果您处理的是非常大的文件,则可能会影响性能。我更新了注册表项,但仍然不起作用。可能是因为我有Windows 7??可能是Windows 7正在另一个注册表位置查找该值。我从来没有在Windows7环境中调试过这个,但是如果我有什么想法,我会告诉你的。