C# IExcelDataReadReader и конкретный лист
У меня есть программа, которая должна прочитать файл Excel и записать его на сервер SQL. Я использую 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!");
1 ответ
Я нашел 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);
}