私はC#を初めて使用しました。ウェブ上のヘルプを使用して、SQL ServerからEXCELにデータをロードして、個々のシートに対応するデータをロードできました。Excelの指定された行にデータをロードする
SSISパッケージ "スクリプトタスク"を使用してこれを達成しようとしています。 C#スクリプト。
今、私は行A7ではなくA1でデータを挿入したいと思います。私は[9442 $ A7:A7]挿入」しようとしました(COL ...)VALUES ...しかし、私は構文エラーを取得おそらく簡単な解決策が、私はそれを把握するように見えることができます
ERROR: System.Data.OleDb.OleDbException: The Microsoft Access database engine could not find the object '9442A7:A7'. Make sure the object exists and that you spell its name and the path name correctly. If '9442 A7:A7' is not a local object, check your network connection or contact the server administrator.
をここに。私のコードは、Excelにデータを作成し、ロードに関連している。
事前のおかげで。
//Use OLE DB Connection and Create Excel Sheet
Excel_OLE_Con.ConnectionString = connstring;
Excel_OLE_Con.Open();
Excel_OLE_Cmd.Connection = Excel_OLE_Con;
Excel_OLE_Cmd.CommandText = "Create table [" + ColumnValue + "] (" + TableColumns + ")";
Excel_OLE_Cmd.ExecuteNonQuery();
//Write Data to Excel Sheet from DataTable dynamically
foreach (DataTable table in ds.Tables)
{
String sqlCommandInsert = "";
String sqlCommandValue = "";
foreach (DataColumn dataColumn in table.Columns)
{
sqlCommandValue += dataColumn + "],[";
}
sqlCommandValue = "[" + sqlCommandValue.TrimEnd(',');
sqlCommandValue = sqlCommandValue.Remove(sqlCommandValue.Length - 2);
//sqlCommandValue = sqlCommandValue.Replace(",", " ");
sqlCommandInsert = "INSERT into [" + ColumnValue + "A7:A7" + "] (" + sqlCommandValue + ") VALUES(";
int columnCount = table.Columns.Count;
foreach (DataRow row in table.Rows)
{
string columnvalues = "";
for (int i = 0; i < columnCount; i++)
{
int index = table.Rows.IndexOf(row);
columnvalues += "'" + table.Rows[index].ItemArray[i] + "',";
}
columnvalues = columnvalues.TrimEnd(',');
var command = sqlCommandInsert + columnvalues + ")";
//MessageBox.Show(command);
Excel_OLE_Cmd.CommandText = command;
Excel_OLE_Cmd.ExecuteNonQuery();
}
}
Excel_OLE_Con.Close();
Excelシートに既にデータがありますか、または新しいデータシートを作成していますか? –
新しいものを作成する。 – Osc