私はVBでASP.NETアプリケーションを開発していますが、VBのSQLコマンドと接続を使用してページのデータを取得しています。私はそのように初期化された部分を両方持っています:値が存在しないと言っているSQLリーダーは、クエリが正常に表示されます。
travelQuery.CommandText = "SELECT [StartLoc], [EndLoc],[TravelTime], [AvgSpeed], [Distance] FROM [TravelTimes] WHERE [TripNum] = '" + lblTrip.Text + "'"
travelConnection.ConnectionString = "..."
eventQuery.CommandText = "SELECT [IncdntDate], [Roadway],..."
そうです。私はeventQueryを省略しました。なぜなら、それはうまく動作するからです。移動クエリとイベントクエリも同じ接続文字列を持ちます。プログラムはイベントクエリを実行し、返されたRdwyID値のいずれかが特定の範囲内に収まると、travelQueryが実行されます。
コード内でRdwyIDを187に設定して、移動時間を引っ張って送信するようにしました。実行しようとすると値がないとクラッシュします。ここで私が使用する正確なコードです。私は事実上同じようにeventQueryを使って動作します。私は接続を正しく開いて閉じていることを確認しています。時間はオブジェクトの配列として適切に宣言されます。
TripNum私はクエリをチェックしていますが、データ型がテキストのデータベース内では一定の値です。
Dim rdwyID As Integer
'rdwyID = events(9) - where the value is pulled from usually'
rdwyID = 187
If (rdwyID >= 186 And rdwyID <= 225)
FillWithTime("2", travelReader, time, newCell)
Private Sub FillWithTime(ByVal TripNum As String, ByRef travelReader As SqlDataReader, ByRef TimeData() As Object, ByRef Cell As System.Web.UI.WebControls.TableCell)
lblTrip.Text = TripNum
travelReader = travelQuery.ExecuteReader()
travelReader.Read()
travelReader.GetValues(TimeData)
Cell.Text += "From: " + TimeData(0).ToString().Substring(9) + "<br />"
Cell.Text += "To: " + TimeData(1).ToString().Substring(9) + "<br />"
Cell.Text += "Travel Time: " + TimeData(2).ToString() + " minutes <br />"
Cell.Text += "Average Speed: " + TimeData(3).ToString() + " MPH <br />"
Cell.Text += "Distance: " + TimeData(4).ToString() + " miles <br />"
End Sub
ご協力いただきありがとうございます。
編集:あなたが言ったような変更を行い、実行するリーダーのif文がfalseに評価されています。私は読者と仕事をすることについて何も知らないが、どのような条件でそれが失敗するのだろうか?本当にありがとう。
編集2:条件に一致するCountをチェックしてゼロが返され、それがまっすぐに確認されて15が返されました。ありがとうございます。地球上では一致していない、なぜ時間が、私はあなたがこのような何かをしようとすることができると思い...