2011-12-05 13 views
0

ADO.NETを使用してExcelファイルに書き込もうとすると、構文エラーが発生します。クエリにパラメータを追加するにはどうすればよいですか。私はmysqlデータベースを更新しています。OleDbDataWriterにパラメータを追加する方法

string error="Text for status"; 
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=Excel 12.0;"; 

System.Data.OleDb.OleDbConnection ExcelConnection = new System.Data.OleDb.OleDbConnection(connectionString); 
string ExcelQuery; 

ExcelQuery = "Update [Sheet1$] set Status="+error; // from Sheet1"; 

//Create the command to be executed 
ExcelCommand = new System.Data.OleDb.OleDbCommand(ExcelQuery, ExcelConnection); 

//Open the connection to the file 
ExcelConnection.Open(); 

//Execute the update 
ExcelCommand.ExecuteNonQuery(); 

//Close the connection 
ExcelConnection.Close(); 

構文エラー ' 状態のテキスト' クエリ式内(演算子がありません)。

+0

Excelのステータス列を文字列エラーで更新しています。パラメータを追加する必要がありますか?パラメータなしで行うことができますか? – Murthy

答えて

0

あなたは、コマンドにパラメーターを追加するためのOleDbCommand.Parameters.Addを使用することができます。

public void CreateMyOleDbCommand(OleDbConnection connection, 
    string queryString, OleDbParameter[] parameters) 
{ 
    OleDbCommand command = new OleDbCommand(queryString, connection); 
    command.CommandText = 
     "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?"; 
    command.Parameters.Add(parameters); 

    for (int j=0; j<parameters.Length; j++) 
    { 
     command.Parameters.Add(parameters[j]) ; 
    } 

    string message = ""; 
    for (int i = 0; i < command.Parameters.Count; i++) 
    { 
     message += command.Parameters[i].ToString() + "\n"; 
    } 
    MessageBox.Show(message); 
} 
+0

更新を行っていますが、更新クエリを実行するのにこれを使用できますか? – Murthy

+0

oleDbCommandにパラメータを追加することは、「更新」または「選択」または「挿入」のどちらでも同じです。 –

0

UPDATEステートメントから'が見つからないようです。

ExcelQuery = "Update [Sheet1$] set [Status]='" + error + "'";

+0

変更を行った後も同じエラーが発生しています。クエリ式の構文エラー(演算子がありません) ' – Murthy

+0

'Status'フィールドの形式は? –

関連する問題