コードをデバッグしているときに、次のような内部例外が見つかりました。
インデックス付きプロパティを評価するには、プロパティを修飾する必要があり、ユーザーが引数を明示的に指定する必要があります。
SQLでは、スクリプトはスムーズに実行されてすべての行を返しますが、vbでは行が返されたり、検索されたりしません。主キーがテーブルにあり、定義されていることを確認しました。どうすればこれを修正できますか? 行を返すproirクエリがありましたが、この新しいクエリを追加するとすぐに内部例外が発生しました....クエリ文字列以外は何も変更しませんでした。
これは私がやったことです:
Public Sub BindDeliveredItems()
Proir if statemets....
Else
queryString = "select distinct LS.[Route], LS.[SubRoute], LS.[Truck], Convert(VARCHAR(10), LS.[Date], 121) AS Date, LS.[DriverAssistantContract]" & _
",((del.CT*100 )/ todel.TCT) as Score" & _
"from [Warehouse].[dbo].[LoadSheet] LS" & _
"left join (select [Truck],[Date],[Status], count([Status]) CT from [Warehouse].[dbo].[LoadSheet]" & _
"WHERE status='Delivered'" & _
"group by [Truck],[Date],[Status]) Del" & _
"on LS.truck=Del.truck and LS.[Date]=del.[Date]" & _
"left join (select [Truck],[Date], count([Truck]) TCT from [Warehouse].[dbo].[LoadSheet]" & _
"group by [Truck],[Date]) todel" & _
"on LS.truck=toDel.truck and LS.[Date]=todel.[Date]" & _
"WHERE ls.[Date] = '2013-07-03'" & _
"AND ls.[Truck] = 'BX 39 LK GP'"
End If
Dim ds As DataSet = GetData(queryString)
If (ds.Tables.Count > 0) Then
gvDeliveredItems.DataSource = ds
gvDeliveredItems.PageSize = (10)
gvDeliveredItems.AllowPaging = True
gvDeliveredItems.DataBind()
End If
End Sub
Function GetData(ByVal queryString As String) As DataSet
Dim ds As New DataSet()
Try
Dim adapter As New SqlDataAdapter(queryString, SQLCon)
adapter.Fill(ds)
Catch ex As Exception
MessageBox(ex.Message)
End Try
Return ds
End Function
編集:
例外が最初に表示されるのはこの行です
Dim ds As DataSet = GetData(queryString)
そして、この行には例外も表示されます:
If (ds.Tables.Count > 0) Then
私の以前のSQL文字列は、何も変更せずに完璧に機能します。私が変更したのは、この例外が発生し始めたときのクエリ文字列だけでした