- - PR -
ExecuteReaderできない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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() | ||||
|
投稿日時: 2003-04-11 15:46
こんにちは。
発生している例外の種類と、メッセージを教えてください。 VB6.0以前と違い、.NETで使用できるようになっている「例外」は、エラーの原因を特定したり、エラーを解決するのにとても有益です。人のデバッグ作業を後ろから見ていて覚えているのは、エラーの番号だけが返ってき、それをヘルプで引かなければなりませんでしたが、「例外」は送出された(エラーとなった)原因によって分類され、解決の助けとなる言葉まで返してくれます。 最初のうちは、とりあえず、 try ' 例外(エラー)が発生する処理 catch ex as Exception messagebox.show ex.message, ex.gettype().tostring() ' プログラムを終了するか、メソッドを終了するか、、、 end try とでもしておきます。例外が発生すると、catch以降の処理に移ります。ここでは、メッセージボックスに例外の種類とそのメッセージを表示しています。例外の種類がわかったら、ヘルプで引いてみます。すると、その例外がどういう場合に送出される(発生する)か書いてありますから、その原因がないか、調べてみます(種類がわかれば原因も8割方見当がつきます)。その時、メッセージが役に立ちます。 | ||||
|
投稿日時: 2003-04-11 15:51
こんにちは。
Dim dr As System.Data.SqlClient.SqlDataReader と定義しているのに、dr(0)という使い方(配列のアクセス) でエラーとなっているのでは? dr.xxxx(0) の xxxx が要るのかもしれませんね。 | ||||
|
投稿日時: 2003-04-11 18:43
こんにちは
Qooさんのおっしゃる通り、dr.Getstring(0)とか dr.Getint32(0)が必要ですね。 [ メッセージ編集済み 編集者: rvmx 編集日時 2003-04-11 18:45 ] |
1