在调试我的代码时,我发现了一个内部异常,内容如下:
为了评估索引属性,必须限定属性并且参数必须由用户显式提供。
在 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 字符串可以完美运行,无需更改任何内容。我唯一改变的是查询字符串,当它开始给我这个异常时