2017-05-03 5 views
0

私はDATAテーブルとしてSQLに挿入する必要があります(すべての新しいレコード) 私の問題は、データテーブルが2から15まで。 私はcommandtext(xxx(col1、col2)の値(@ col1、@ col2)の値を "動的に作成することはできませんでした") myparamstring = command.paramerterの文字列を作成することもできました[私にレコードをSQLに挿入するための動的なコマンドとパラメータのメソッド

ちょうど夜が明けHOU iがactualy command.executeNonQuery())

を実行します; "]の値= "@ COL1 VAL1;。]の値= "" command.paramerter [" @のCOL2" VAL2"
+2

郵便あなたのコード:

とにかく、これは私はあなたがADO経由でSQL Severの上で実行する文を書くでしょうかの大まかなレイアウトがあります。 – Gusman

+2

"command.executeNonQuery()"を使ってみましたか?この質問には、良い質問のすべての重要な部分が欠けています....主に、他の人が助けてくれるチャンスがあるために必要な細部。 –

答えて

0

あなたがしたことのプレゼンテーションの問題。パラメータは文字列ではなく、SqlParamatersであり、SqlParameter p1 = new SqlParameter("@col1", "val1");を直接定義するか、コマンドオブジェクトに直接追加することができますcmd.Parameters.AddWithValue("@col1", "val1");実際にクエリを実行すると、実際にクエリが実行されます。 command.executeNonQuery()メソッドの共通点の1つは、影響を受ける行の量を反映する整数を返すことです。挿入するには1にする必要がありますが、複数のレコードを削除する場合は、より高いか、または制限する(WHEREを介して)、0にすることができます。catchステートメントに負の数値を割り当てて、

int RowsAffected; 
using (SqlConnection conn = new SqlConnection(strConn)) { 

    string cmdText = "insert into xxx(col1, col2) values(@col1,@col2)"; 

    using (SqlCommand cmd = new SqlCommand(cmdText, conn)) { 

     cmd.CommandType = CommandType.Text; 
     cmd.Parameters.AddWithValue("@col1", "val1"); 
     cmd.Parameters.AddWithValue("@col2", "val2"); 

     try { 
      conn.Open(); 
      RowsAffected = cmd.ExecuteNonQuery(); 
     } 
     catch (SqlException sx) { 
      RowsAffected = -1; 
      Console.Write(sx); // your SQL error handling 
     } 
     catch (Exception ex) { 
      RowsAffected = -2; 
      Console.Write(ex); // other exception handling 
     } 
     finally { 
       // your cleanup routines 
       conn.Close(); 
       Console.Write("Rows Added = " + RowsAffected); 
      } 
     } 
    } 
関連する問題