1
在调试我的代码,我发现了一个内部异常其内容为:索引属性错误
为了评估索引属性,该属性必须是合格和参数必须由用户显式提供。
在sql脚本运行平稳返回所有行,但在vb它没有返回或找到任何行。我已经检查过主键是在表格中定义的。我怎样才能解决这个问题?我有一个proir查询返回行,但只要我添加了这个新的查询内部异常来了....除了querystring我没有改变任何东西。
这是我做了什么:
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字符串完美无缺地改变了任何东西。我唯一改变的是查询字符串的时候就开始给我这个例外
你可以显示异常发生的行吗?错误是使用.NET功能,听起来不像是一个SQL问题 - 我认为你的VB语法可能在某处可能...或者它可能是一个SQL问题,因为没有数据返回,而你是试图访问不存在的索引属性.. – Charleh