2008-08-28 13 views
7

私は基本的にSqlClientの名前空間を使用してC#.NETで、あなたの基本的な挿入操作を実行するための最も簡単な方法を把握しようとしています。私は私のDBリンクのSqlConnectionを使用していC#の - のSqlClient - 最も簡単なINSERT

、私はすでにいくつかの読み取り実行の成功を持っていた、と私はデータを挿入する最も簡単な方法を知ってほしいです。私はグーグルでかなり冗長な方法であるように見えます。

答えて

15
using (var conn = new SqlConnection(yourConnectionString)) 
{ 
    var cmd = new SqlCommand("insert into Foo values (@bar)", conn); 
    cmd.Parameters.AddWithValue("@bar", 17); 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
} 
+0

上のスポット!パラメータを使用するだけでなく、SQLインジェクション攻撃(もちろん.netのパラメータタイプにもよる)から保護されますが、コンパイルされたクエリをキャッシュして、このコードが呼び出されたときにパラメータを置換することもできます。 – MPritchard

+1

に変更提案する:使用 (VARのCONN =新しいSqlConnectionオブジェクト(yourConnectionString)) 使用(VARのCMD =新しいSqlCommandオブジェクト( ")(Fooの値に@barを挿入"、CONN)) {cmd.Parameters.AddWithValue(」 @bar "、17); conn.Open(); cmd.ExecuteNonQuery(); } – MPritchard

+0

(古い回答をここにコメントとして移しています)私は、OPが挿入を達成するための「最も単純な」コードを探していたので、意図的にSqlCommandを使用していました(ただし、 )。私はそれが良い習慣であることに同意する。 –

0
using (SqlConnection myConnection new SqlConnection("Your connection string")) 
{ 
    SqlCommand myCommand = new SqlCommand("INSERT INTO ... VALUES ...", myConnection); 
    myConnection.Open(); 
    myCommand.ExecuteNonQuery(); 
} 
+1

-1。このアプローチは、手でSQL文字列を構築し、パラメータ化SQLを使用していないお勧めします。ごめんなさい – MPritchard

2

あなたは今、この使用を開始しているように見えるので、データアクセス層(obligatory wikipedia link)の概念を理解するための最良の時間です。あなたしているアプリが全体データベースとのより多くの相互作用を持っていて、コードの重複を最小限に抑えたいとき、それは道あなたのために非常に参考になります。また、より一貫した動作を実現し、テストや他の多くのものを簡単にします。

関連する問題