@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Updateメソッドについて

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-08-10 17:33
msoです。

C#でUpdateメソッドの勉強を兼ねつつ、少しずつやっていますが
どうしてもわからないことあります。
今、テスト的に作っている下記のプログラムを
実行すると変数 '@NYUKIN_NO'を宣言する必要があります。
というエラーが出ます。

もともとは
http://www.atmarkit.co.jp/fdotnet/basics/adonet05/adonet05_02.html
をサンプルにして作っているのですが何がおかしいのかわかりません。
何がおかしいのかご指摘していただけないでしょうか?

コード:
//追加するデータをセットする
DataRow dr;
dr = this.dNyukin.D_Nyukin.NewRow();
dr["NYUKIN_NO"] = 1;
this.dNyukin.D_Nyukin.Rows.Add(dr);

//SqlCommandオブジェクト生成
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn;
cmd2.Parameters.Clear();
cmd2.CommandText = "INSERT INTO D_NYUKIN(NYUKIN_NO) VALUES (@NYUKIN_NO)";

//パラメータに値をセットする
SqlParameter pNyukinNo = new SqlParameter();
pNyukinNo.ParameterName = "@NYUKIN_NO";
pNyukinNo.SourceColumn = "NYUKIN_NO";

adp.InsertCommand = cmd2;

adp.Update(this.dNyukin,this.dNyukin.D_Nyukin.TableName);

NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-08-10 17:37
作成したパラメータオブジェクトがコマンドオブジェクトに追加されていないので、その例外は発生しているのでしょう。
そういった時は、1行ずつ何をしているか確認してみると良いかもしれません。

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2005-08-10 17:38 ]
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-08-10 17:37
引用:

msoさんの書き込み (2005-08-10 17:33) より:
コード:
//追加するデータをセットする
DataRow dr;
dr = this.dNyukin.D_Nyukin.NewRow();
dr["NYUKIN_NO"] = 1;
this.dNyukin.D_Nyukin.Rows.Add(dr);

//SqlCommandオブジェクト生成
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn;
cmd2.Parameters.Clear();
cmd2.CommandText = "INSERT INTO D_NYUKIN(NYUKIN_NO) VALUES (@NYUKIN_NO)";

//パラメータに値をセットする
SqlParameter pNyukinNo = new SqlParameter();
pNyukinNo.ParameterName = "@NYUKIN_NO";
pNyukinNo.SourceColumn = "NYUKIN_NO";

adp.InsertCommand = cmd2;

adp.Update(this.dNyukin,this.dNyukin.D_Nyukin.TableName);





せっかく作成したパラメータをcmd2に追加していない気がします・・・。
#リンク先と見比べてみただけなんですけど(^^;
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-08-10 18:22
msoです。

引用:

夏椰(かや)さんの書き込み (2005-08-10 17:37) より:
せっかく作成したパラメータをcmd2に追加していない気がします・・・。
#リンク先と見比べてみただけなんですけど(^^;



おっしゃるとおりでした。
単純にパラメータに追加していなかっただけで、
追加したとたんに普通にできました。

なんか技術情報を教えてもらうつもりだったのですが、
デバッグをしてもらっちゃいました。
すんませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)