C# 如何使用OLEDB从.XLS文件填充listview

C# 如何使用OLEDB从.XLS文件填充listview,c#,oledb,C#,Oledb,嗨,我有个小问题。我正在编写一个程序,它在两个单独的列表视图中显示Excel文件的列,并在其旁边显示Access数据库的列。选择要使用组合框显示的图纸和表格。Access列显示良好,但无论我做什么,Excel工作表的列都不会显示,但工作表显示在组合框中没有任何问题,但无论我做什么,列都不会显示。因为我在互联网上找不到任何东西,所以我有什么具体的方法可以做到这一点吗 这是应该插入它的零件 { string connString = "Provi

嗨,我有个小问题。我正在编写一个程序,它在两个单独的列表视图中显示Excel文件的列,并在其旁边显示Access数据库的列。选择要使用组合框显示的图纸和表格。Access列显示良好,但无论我做什么,Excel工作表的列都不会显示,但工作表显示在组合框中没有任何问题,但无论我做什么,列都不会显示。因为我在互联网上找不到任何东西,所以我有什么具体的方法可以做到这一点吗

这是应该插入它的零件 {

            string connString =



            "Provider=Microsoft.Jet.OLEDB.4.0;" +
            "Data Source=" + txtSourcePath.Text + ";" +
            "Extended Properties=Excel 8.0";
            //"Password=" + txtPWSource + ";";

            _SourceConn = new OleDbConnection(connString);
           // _OleConn[1].ConnectionString = connString;
            _SourceConn.Open();

            _Sourcedt = new DataTable();

            LoadCombo2();
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
还有连接部分

私有无效BTN连接源\单击对象发送者,事件参数e { 尝试 {

            string connString =



            "Provider=Microsoft.Jet.OLEDB.4.0;" +
            "Data Source=" + txtSourcePath.Text + ";" +
            "Extended Properties=Excel 8.0";
            //"Password=" + txtPWSource + ";";

            _SourceConn = new OleDbConnection(connString);
           // _OleConn[1].ConnectionString = connString;
            _SourceConn.Open();

            _Sourcedt = new DataTable();

            LoadCombo2();
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

在这种情况下使用Listview不是一个好主意。最好的方法是将Excel中的数据填充到数据网格中

好吧,我对编码很陌生,所以你需要哪一部分我也在寻找Excel文件中读取的代码。如果Listview为空,可能是因为_Sourcedt.Rows.Count=0,你需要计算出来为什么您没有获得任何行,例如,您正在从excel读取一张空工作表。使用Add方法而不是AddRange,Add用于添加单个项目AddRange用于添加多个项目。我检查了工作表是否已为EmptyLvSource.items.Addnew ListViewItem_Sourcedt.Columns[i].ColumnName,0;应该可以工作。请注意,我已经从构造函数的开头删除了空字符串。这是JavaScript和其他弱类型语言中使用的一个老把戏,用于将结果强制为字符串。c是强类型的,因此不需要。hmmm不工作它肯定是读取部分
            string connString =



            "Provider=Microsoft.Jet.OLEDB.4.0;" +
            "Data Source=" + txtSourcePath.Text + ";" +
            "Extended Properties=Excel 8.0";
            //"Password=" + txtPWSource + ";";

            _SourceConn = new OleDbConnection(connString);
           // _OleConn[1].ConnectionString = connString;
            _SourceConn.Open();

            _Sourcedt = new DataTable();

            LoadCombo2();
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }