※ ChatGPTを利用し、要約された質問です(原文:C#、ADO.Netでのパラメータの指定方法)
C#、ADO.Netでのパラメータの指定方法
このQ&Aのポイント
C#とSQLServerでアプリケーションを作っている方が、指定した期間のデータを抜き出す際にパラメータの指定方法で困っています。
データアダプターを使用してSQLを実行し、開始日と終了日が指定した期間のデータを抜き出そうとしています。
プログラムのコード上でパラメータに値を指定しているが、ビルドエラーが発生し、正しくデータを抽出できません。アドバイスをお願いします。
C#とSQLServerでアプリケーションを作っているのですが、以下の点で困っています。
テーブルA(以下T_A)から開始日と終了日が指定した期間のデータを抜き出そうとしています。
そこで、データアダプターをツールボックスから配置し、その中に以下のSQLを設定しています。
フィールド名をf1、f2、f3、f4とします。日付はf4に入っています。
Select f1,f2,f3
From T_A
Where ( f4 BETWEEN @SD AND @ED)
そして、プログラムのコード上から、@SDと@EDにデータを入れたいのですが、
その部分で行き詰っています。
sqlDataAdapter1.sqlSelectCommand2.Parameters["@SD"].value = "2005/01/01";
sqlDataAdapter1.sqlSelectCommand2.Parameters["@ED"].value = "2005/01/31";
というようなコードを記述しますと、ビルドエラーとして、
System.Data.sqlClient.SqlDataAdapterにsqlSelectCommand1の定義がありません
静的でないフィールド、メソッド、またはプロパティ'プロジェクト名.Form1.sqlDataAdapter'で、
オブジェクト参照が必要です。
と出ます。
public class Form1には、それぞれの記述が確認できますので、更に謎なのです。
ちなみにデータセットのプレビューにて、それぞれの変数を指定してやると、取得結果は正しく抽出できます。
どなたか、何かお気づきの点はないでしょうか?
アドバイスをよろしくお願いいたします。
お礼
sakuhatさん、回答ありがとうございます。 回答に頂いた内容は、「そういうことか!」とわかり、実行に移ったのですが、 結果としてエラーが出ます。 System.Data.sqlClient.sqlParameterにvalueの定義がありません。・・・I "プロジェクト名.Dataset1"は'クラス'を意味しますが、'変数でなければなりませn' 静的でないフィールド、メソッド、またはプロパティ'プロジェクト名.Form1.sqlDataAdapter1 'で、オブジェクト参照が必要です。 と、出ます。 Iは、「sqlDataAdapter1.SelectCommand」部分に、それ以外は、valueを設定している第2文を指定しているようです。 回答内の※の部分は、sqlDataAdapter1のSelectCommandプロパティ内に書かれています。 もう一度、作り直してみますが、何かお気づきの点がありましたら、よろしくお願いいたします。