0

我有一个程序需要读取一个 excel 文件并将其写入 sql server。我正在使用 IExcelDataReader,只要我有一个工作表,我的代码就可以工作。如果我有另一个示例,其中包含一些我不需要插入的信息,我无法指定我需要的工作表。我知道我可能应该以某种方式使用 NextRecord(),但我无法让它工作。

到目前为止,这是我的代码:

OpenFileDialog ope = new OpenFileDialog();
        ope.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
        if (ope.ShowDialog() == false)
            return;
        FileStream stream = new FileStream(ope.FileName, FileMode.Open);
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        excelReader.IsFirstRowAsColumnNames = true;
        DataSet result = excelReader.AsDataSet();
        DataClasses1DataContext conn = new DataClasses1DataContext();

        foreach (DataTable table in result.Tables)
        {

            foreach (DataRow dr in dd.Rows)
            {

                Excel addTable = new Excel()
                {

                    id = Convert.ToInt32(dr[0]),
                    ime = Convert.ToString(dr[1])

                };

                conn.ExecuteCommand("TRUNCATE TABLE Excel");

                conn.Excels.InsertOnSubmit(addTable);

            }
        }

        conn.SubmitChanges();
        excelReader.Close();
        stream.Close();
        MessageBox.Show("success!");
4

1 回答 1

0

我找到了 aswer .. 在 foreach 中应该只有:

foreach (DataRow dr in result.Tables[0].Rows)
        {
            Excel addTable = new Excel()
            {


                ime = Convert.ToString(dr[1])

            };

            //   conn.ExecuteCommand("TRUNCATE TABLE Excel");
            conn.ExecuteCommand("DELETE FROM Excel where ime='a'");
            conn.Excels.InsertOnSubmit(addTable);
        }
于 2017-09-19T17:14:40.133 回答