【问题标题】:Index (zero based) must be greater than or equal to zero and less than the size of the argument list (VB.NET)索引(从零开始)必须大于或等于零且小于参数列表的大小 (VB.NET)
【发布时间】:2016-04-01 23:38:21
【问题描述】:

我在生成报告时收到此错误。它说“索引(从零开始)必须大于或等于零且小于参数列表的大小。”

我该如何解决这个问题?谁能帮我这个?我是 vb.net 编程的新手。提前致谢。

这是我的代码:

If String.IsNullOrEmpty(reportFilter) Then
   daEmployee.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({3}) AND a.employee_id IN({4}) group by cdr_date,cdr_time,cdr_call_type_code ORDER BY employee_name", siteId, employeeId))
Else
   daEmployee.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({3}) AND a.employee_id IN({4}) group by cdr_date,cdr_time,cdr_call_type_code ORDER BY employee_name", siteId, employeeId))
End If

【问题讨论】:

  • 您的 string.Format 需要 5 个参数 ({0} - {4}),而您只传递了 2 个。

标签: vb.net rdlc


【解决方案1】:

string.Format 需要五个替换参数,而您只传递了两个。您正在访问未传递的 {2}、{3}、{4} 索引参数。

daEmployee.SetWhereClause(String.Format("cdr_site_id = '{0}' AND cdr_datetime BETWEEN '{1}' AND '{2}' AND cdr_call_class_code = 'OUTGOING' AND cdr_call_type_id IN({3}) AND a.employee_id IN({4}) group by cdr_date,cdr_time,cdr_call_type_code ORDER BY employee_name", siteId, employeeId, another-three-parameters-here))

【讨论】:

  • 在employeeId 传递另外三个参数后,这些参数将代替查询中的{2}、{3}、{4}。
猜你喜欢
  • 2011-04-18
  • 2011-12-19
  • 2016-07-03
  • 2023-04-11
  • 2018-07-26
  • 2011-11-20
  • 1970-01-01
  • 2013-05-27
相关资源
最近更新 更多