我正在使用類變量DataTable dt
,並試圖運行兩個SQL查詢並將結果寫入Excel。我沒有錯誤,並且一切正常,除了第二次迭代並寫入Excel,數據表中的頭文件被寫入。數據表未被清除
我所追求的是sheet1從sqlquery1獲取所有信息,然後sheet2從sqlquery2獲取所有信息。現在datawise,它完全按照我的需要工作,但由於某種原因,sheet2從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];
}
}
}