2011-11-09 12 views
1

cをMSアクセスデータベースの主キーを持つレコードを挿入する方法:私はMS Accessデータベースのレコードを挿入するための次のコマンドを使用しています。#

OleDbCommand cmd = new OleDbCommand("insert into Table1 values('" + Name + "','" + 
Symbol + "','" + D + "','" + Red + "','" + RedBuy + "','" + RedSell + "','" + 
SBIntraBuy + "','" + SBTR1Buy + "','" + SBTR2Buy + "','" + SBTR3Buy + "','" + 
SBIntraSell + "','" + SBTR1Sell + "','" + SBTR2Sell + "','" + SBTR3Sell + "','" + RSTL 
+ "','" + Green + "');", con); 

は私がのCustomerIdと呼ばれる名前の前に列を追加しますプライマリキーを使用します。私は主キーでそれを挿入する方法を知らない。私は主キーの私のコマンドに追加する必要がありますか?

誰かが私を助けることができれば幸いです。

ありがとうございました。

テーブルレイアウトのスクリーンショットはthis linkを確認してください。

+0

'CustomerId'フィールドは自動インクリメントですか?あなたのテーブルの構造をご覧ください。 –

+0

1分私はスクリーンショットを取るうちにしてください –

+0

それを確認してください –

答えて

4

キーが自動インクリメントの場合、必要はありません。データベースがそれを行います。あなたのキーが自動増分でない場合、それを変更することを検討してください。それは本当にきれいです!

また、完全な挿入クエリを作成する代わりにbindingを使用することを検討してください。

は、次の表を仮定します。あなたがやりたいだろう何

 
Table1 
PK (auto_increment) 
Name 
Symbol 

は次のとおりです。

OleDbCommand cmd = new OleDbCommand("insert into Table1 (Name,Symbol) values (?,?)"); 
cmd.Parameters.Add(new OleDbParameter("@Name",Name)); 
cmd.Parameters.Add(new OleDbParameter("@Symbol",Symbol)); 

または(より安全):

OleDbCommand cmd = new OleDbCommand("insert into Table1 (Name,Symbol) values (@Name,@Symbol)"); 
cmd.Parameters.Add(new OleDbParameter("@Name",Name)); 
cmd.Parameters.Add(new OleDbParameter("@Symbol",Symbol)); 

そして最後に:

cmd.ExecuteNonQuery(); 
+0

C#を受け入れることができますか?パラメータとして。私はいつも 'Parameters.Add()'メソッドで使われている変数を見てきました。 '@ Name'、または' @ Symbol'を使用します。 –

+0

私は十分な評判を持っていないので、働いてくれてありがとうございますが、私は投票できません。 –

+0

@AdamWengerくそー、あなたは正しいと思います。私にチェックさせてください。 – MPelletier

関連する問題