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

ExecuteReaderできない

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-04-11 14:37
VB.NETでWeb開発をしています。
下記のようなSQLを実行したいのですが、データベースからデータを
読み込むとき(dr(0)で)失敗します。考えられる原因は何でしょうか?
もちろんDB接続はOKでした。
よろしくお願いします。

Me.SqlSelectCommand2.CommandText = "SELECT Sum(Arrest_number_cases), Sum(Arrest_number), Sum(Prevention), Sum(Actio" & _
"n_doubt), Sum(Flight), Sum(Tag), Sum(Bag_Tag), Sum(Bag), Sum(Amount), Sum(Wre" & _
"ckage_tag) FROM T_SecurityReport_Info WHERE (EastWest = @FootEastWest) AND (SR_" & _
"Month = @FootSR_Month) AND (SR_Year = @FootSR_Year) AND (Week = @FootWeek)"
Me.SqlSelectCommand2.Connection = Me.SqlConnection2
Me.SqlSelectCommand2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FootEastWest", System.Data.SqlDbType.Char, 1))
Me.SqlSelectCommand2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FootSR_Year", System.Data.SqlDbType.Char, 4))
Me.SqlSelectCommand2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FootSR_Month", System.Data.SqlDbType.Char, 4))
Me.SqlSelectCommand2.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FootWeek", System.Data.SqlDbType.Char, 1))

-----------------------------------------------------------------------

SqlSelectCommand2.CommandType = CommandType.Text

Dim dr As System.Data.SqlClient.SqlDataReader
SqlConnection2.Open()
dr = SqlSelectCommand2.ExecuteReader
If dr.Read() Then
e.Item.Cells(0).Text = "TOTAL"
e.Item.Cells(1).Text = Format(dr(0), "##,##0")
e.Item.Cells(2).Text = Format(dr(1), "##,##0")
e.Item.Cells(3).Text = Format(dr(2), "##,##0")
e.Item.Cells(4).Text = Format(dr(3), "##,##0")
e.Item.Cells(5).Text = Format(dr(4), "##,##0")
e.Item.Cells(6).Text = Format(dr(5), "##,##0")
e.Item.Cells(7).Text = Format(dr(6), "##,##0")
e.Item.Cells(.Text = Format(dr(7), "##,##0")
e.Item.Cells(9).Text = FormatCurrency(dr()
e.Item.Cells(10).Text = Format(dr(9), "##,##0")
End If
SqlConnection2.Close()
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-04-11 15:46
こんにちは。
引用:

damepgさんの書き込み (2003-04-11 14:37) より:

読み込むとき(dr(0)で)失敗します。考えられる原因は何でしょうか?


 発生している例外の種類と、メッセージを教えてください。

 VB6.0以前と違い、.NETで使用できるようになっている「例外」は、エラーの原因を特定したり、エラーを解決するのにとても有益です。人のデバッグ作業を後ろから見ていて覚えているのは、エラーの番号だけが返ってき、それをヘルプで引かなければなりませんでしたが、「例外」は送出された(エラーとなった)原因によって分類され、解決の助けとなる言葉まで返してくれます。

 最初のうちは、とりあえず、

try
' 例外(エラー)が発生する処理
catch ex as Exception
messagebox.show ex.message, ex.gettype().tostring()
' プログラムを終了するか、メソッドを終了するか、、、
end try

とでもしておきます。例外が発生すると、catch以降の処理に移ります。ここでは、メッセージボックスに例外の種類とそのメッセージを表示しています。例外の種類がわかったら、ヘルプで引いてみます。すると、その例外がどういう場合に送出される(発生する)か書いてありますから、その原因がないか、調べてみます(種類がわかれば原因も8割方見当がつきます)。その時、メッセージが役に立ちます。
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2003-04-11 15:51
こんにちは。

Dim dr As System.Data.SqlClient.SqlDataReader
と定義しているのに、dr(0)という使い方(配列のアクセス)
でエラーとなっているのでは?

dr.xxxx(0) の xxxx が要るのかもしれませんね。

rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2003-04-11 18:43
こんにちは

Qooさんのおっしゃる通り、dr.Getstring(0)とか
dr.Getint32(0)が必要ですね。

[ メッセージ編集済み 編集者: rvmx 編集日時 2003-04-11 18:45 ]
1

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