2012-11-13 5 views
6

上で複数のupdateコマンドを実行し、私はExcelファイルを持っていると私は、このコードを書くsheet.Soに複数の行を更新したい:はエクセル

OleDbConnection cn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + serverPath + ";Extended Properties = Excel 8.0;"); 
     try 
     { 

      strUpd = ""; 
      strUpd += "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1 "; 
      strUpd += " update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2"; 
      cn.Open(); 
      OleDbCommand cmdInsert = new OleDbCommand(strUpd, cn); 
      cmdInsert.ExecuteNonQuery(); 
      cn.Close(); 
     } 
     catch 
     { 
     } 

と、私はこのエラーを得た:

Syntax error (missing operator) in query expression 'id = 1 update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2'.

私はこのエラーを得た

strUpd += "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1;"; 

::と私は、私は、この行に;を追加するとき

Characters found after end of SQL statement.

Excelで複数のステートメントを実行する方法はありますか?

おかげ

+0

その欠落しているいずれかの "AND"/"OR": - 「更新[Data14City $]に設定B_1_1 = 5、B_1_2 = 26、B_1_3 = 44、B_1_4 = 8ここで、ID = 1 OR セットB_1_1 = 0 、B_1_2 = 8、B_1_3 = 17、B_1_4 = 0、ここでid = 2 " – Derek

+0

詳細を教えてください – Arian

+0

あなたが達成しようとしていることを正しく言ってください:UPDATEテーブルSET A WHERE ID = 1 OR B AND WHERE ID = 2?上記の文字列を試しましたか? – Derek

答えて

0

あなたは本当にそのようなあなたのアップデートを積み重ねする必要はありません(上記で指摘したように、実際には、することはできません)。個別に実行するのにそれほど時間はかかりません。ここで私が使ってきたコードはうまくいきます(私は実際にループで私のものを持っていますが、あなたのアップデートをループできない場合はうまく動作します)。

cn.Open(); 

using (OleDbCommand cmd = cn.CreateCommand()) 
{ 
    cmd.CommandText = "update [Data14City$] set B_1_1 = 5 ,B_1_2 = 26 ,B_1_3 = 44 ,B_1_4 = 8 where id = 1"; 
    cmd.ExecuteNonQuery(); 
    cmd.CommandText = "update [Data14City$] set B_1_1 = 0 ,B_1_2 = 8 ,B_1_3 = 17 ,B_1_4 = 0 where id = 2"; 
    cmd.ExecuteNonQuery(); 

    // ... and so on 
} 

cn.Close();