将数据添加到数据表而不填充列名C#

时间:2019-01-31 21:28:59

标签: c#

我正在尝试将excel电子表格中的数据添加到数据表中,我毫不担心地将数据添加到数据集中的表中,但是当我添加数据时,它会在第一行中填充列名。我试图设置列名,但随后它仅切断了数据的第一行。 我是C#的新手,我确定我需要更改填充方法 objAdapter1.Fill(objDataset1,tableName); ,但不知道如何进行。

    public DataSet readExcel()
    {
        int x = 0;
        string[] Individal_Runs = Directory.GetFiles(@"C:\testfiles");
        DataSet objDataset1 = new DataSet();
        int iso = 0;
        foreach (string s in Individal_Runs)
        {
            x++;
            try
            {
                String theConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + s + ";Extended Properties=Excel 12.0 Xml";
                OleDbConnection objConn = new OleDbConnection(theConnString);
                objConn.Open();

                string[] sheetnames = GetExcelSheetNames(String.Format("{0}", s));
                int y = 0;
                int z = 0;
                string tableName;
                bool looponce = false;

                foreach (string sn in sheetnames)
                {

                    OleDbCommand objCmdSelect = new OleDbCommand(String.Format("SELECT * FROM [{0}]", sn.ToString()), objConn);
                    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

                    if( looponce == false)
                    {
                        tableName = string.Format("isolations_{0}", iso);
                        objDataset1.Tables.Add(tableName);
                        objDataset1.Tables[tableName].NewRow();
                        DataRow newRow = objDataset1.Tables[tableName].NewRow();

                        objDataset1.Tables[tableName].Rows.InsertAt(newRow, 0);

                        looponce = true;
                    }
                    else
                    {
                        tableName = string.Format("isolations_{0}_{1}", iso,y);
                        objDataset1.Tables.Add(tableName);
                        DataRow newRow = objDataset1.Tables[tableName].NewRow();

                        objDataset1.Tables[tableName].Rows.InsertAt(newRow, 0);

                        y++;
                    }

                    objAdapter1.SelectCommand = objCmdSelect;
                    objAdapter1.Fill(objDataset1,tableName);

                    int cols = objDataset1.Tables[tableName].Columns.Count;
                    for (int i = 0; i < cols; i++)
                    {
                        objDataset1.Tables[tableName].Columns[i].ColumnName = i.ToString();
                    }
                    z++;
                }
                iso++;
            }

0 个答案:

没有答案