クラス変数DataTable dt
を使用していますが、2つのSQLクエリを実行して結果をExcelに書き込もうとしています。私はエラーはありません。すべての作業はうまくいきます。ただし、2回目の繰り返しとExcelへの書き込みを除いて、データテーブルのヘッダーが書き込まれます。DataTableがクリアされない
私が後にしていることは、sheet1がsqlquery1からすべての情報を取得した後、sheet2がsqlquery2からすべての情報を取得することです。今度はdatawise、それは私が必要としているように正確に動作しますが、何らかの理由でsheet2がsqlquery1からヘッダーを取得します。
私の構文では、次の繰り返しがきれいなスレートで始まるようにデータテーブルを適切にクリアしませんか?私の理解TO
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];
}
}
}