Я использую переменную класса DataTable dt
и пытаюсь запустить два SQL-запроса и записать результаты в Excel. У меня нет ошибок, и все работает нормально, за исключением второй итерации и записи в Excel, записываются заголовки из datatable.DataTable Not Being Cleared
То, что я получаю после sheet1, получает всю информацию из sqlquery1, а затем sheet2 получает всю информацию из sqlquery2. Теперь datawise, он работает точно так, как мне нужно, НО лист2 получает заголовки из sqlquery1 по какой-то причине.
Где в моем синтаксисе я не правильно очищаю данные, чтобы следующая итерация начиналась с чистого листа?
public static void DoThis()
{
string sqlsyntax = null;
if (userid == "Red")
{
sqlsyntax = SQLQuery1 (just not showing syntax)
QuerySQLTable(sqlsyntax);
WriteDataToExcel(dt);
}
if (userid == "Pink")
{
sqlsyntax = SQLQuery2 (just not showing syntax)
QuerySQLTable(sqlsyntax);
WriteDataToExcel(dt);
}
}
public static void QuerySQLTable(string sqlsyntax)
{
using (conn = new SqlConnection(SqlConnection))
{
//Clearing datatable if not null
dt.Clear();
da = new SqlDataAdapter(sqlsyntax, conn);
conn.Open();
da.Fill(dt);
conn.Close();
da.Dispose();
}
}
private static void WriteDataToExcel(DataTable dt)
{
int i = 0;
int j = 0;
for (i = 0; i < dt.Columns.Count; i++)
{
xlWorkSheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
}
for (i = 0; i < dt.Rows.Count; i++)
{
for (j = 0; j < dt.Columns.Count; j++)
{
xlWorkSheet.Cells[i + 2, j + 1] = dt.Rows[i][j];
}
}
}