- - PR -
[windows] SqlDataAdapter のパラメータで?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-04 18:48
いつもお世話になっております
VB.NET の windows アプリで 親画面にて、SqlConnection、SqlDataAdapter を定義していて 子画面では Private m_fm As frmBaseForm '親画面 m_fm.SqlDataAdapter1.Fill(dataset1) というように使用してます。上記の場合は、うまく動作するのですが Adapter にパラメータを使用して条件選択する際に、上と同様に Private m_fm As frmBaseForm '親画面 m_fm.SqlDataAdapter1.SelectCommand.Parameters("@uid").Value() = uid.text m_fm.SqlDataAdapter1.Fill(dataset1) とすると、パラメータに値をいれる m_fm.SqlDataAdapter1.SelectCommand.Parameters("@uid").Value() = uid.text この行で、 「オブジェクト参照がオブジェクト インスタンスに設定されていません」 という エラーが出ます。 すみません ご教授頂けませんでしょうか よろしくお願い致します | ||||||||
|
投稿日時: 2005-01-04 18:55
親子の関係は呼び出し元formと呼び出されるform?それとも継承元クラスと継承されたクラス?
エラーにならない
のところで、m_fmに値を設定していますか? エラーになる
のところでは、m_fmに値を設定していますか? m_fmが自動で使えるわけではありません。 はじめの方では何がしかの方法で値を入れるようになっているのではないでしょうか。 _________________ たつごろー codeseek こみゅぷらす | ||||||||
|
投稿日時: 2005-01-04 20:06
返信ありがとうございます
すみません、言葉足らずだったようで、申し訳ありません
親子関係は MDI画面の 呼び出し元formと呼び出されるform です 呼び出し元formの画面名が frmBaseForm です 呼び出されるform にて クラス名直後に Private m_fm As frmBaseForm Private Sub Form_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load m_fm.SqlDataAdapter1.Fill(dataset1) end sub です。 エラーになるのと、ならないのでは fill をかける前に パラメータをセットする1文が、あるかないかの違いのみです m_fm.SqlDataAdapter1.SelectCommand.Parameters("@uid").Value() = uid.text '''' uid.text は 画面上の項目です すみません よろしくお願い致します | ||||||||
|
投稿日時: 2005-01-04 21:31
南部です。 ここまでデバッグして、なぜ、「どのオブジェクト参照が設定されていないのか」 を調べないのですか? m_fmなのか、 SqlDataAdapter1なのか、 SelectCommandなのか、 Parameters("@uid")なのか。 Parameters("@uid")が設定されていない場合なら、 Parameters(コレクション)に@uidが追加されていないのでしょう。 | ||||||||
|
投稿日時: 2005-01-05 11:26
南部さん ありがとうございます いつも このエラーの場合、 「どのオブジェクト参照が設定されていないのか」 を見つけるのに苦労してしまいます 書き方を一生懸命に見直してみるのですが、お手上げになってしまいます (;_;) デバッグ中の、値の確認に、苦労してしまう毎日です デバッグの仕方を、もっと、精進しなくてはと、今年の課題です m_fm の値を、直前で、違うものに替えてしまっていたのが 原因でした。 すみません ![]() | ||||||||
|
投稿日時: 2005-01-05 20:55
にょにょ?なぜに? > m_fm.SqlDataAdapter1.SelectCommand.Parameters("@uid").Value() = uid.text この行で、大まかに2つ、つまり=の左辺と右辺のどちらかになりますよね。そして、uid.textは対象から外れますよね。uidの方は、この上にマウスカーソルを持ってくれば、値が表示されます。それでわかります。メソッドは潜ってくれないので、メソッドの戻り値がnullの時はわかりません。 では、右辺の見方を。単純に、全部選択して右クリックし、「クイックウォッチ」を選択します。後は後ろからピリオドまで消して、どこがnullなのか調べればok! _________________ | ||||||||
|
投稿日時: 2005-01-08 14:23
遅ればせながら ありがとうございます >後は後ろからピリオドまで消して このピリオドまで消して というのを はしょってしまってますね ![]() >右クリックし、「クイックウォッチ」 こんな便利なものがあったんですね ありがとうございました デバッグ 精進します!!! |
1