我有一组查询,我在网页上用完了 VB.NET 代码隐藏,这些查询读取用户输入的开始和结束日期。这是代码/查询:
strOraQuery = "SELECT a.col1, a.col2, a.col3 " & _
"FROM a_table a LEFT JOIN b_table b ON (a.col1=b.col1) " & _
"WHERE a.datecol BETWEEN :startdate AND :enddate"
oracmd = New OracleCommand(strOraQuery, oracn)
oracmd.Parameters.Add(New OracleParameter(":enddate", strEndDate))
oracmd.Parameters.Add(New OracleParameter(":startdate", strStartDate))
编辑#2:这些参数在我的代码中实际上是乱序的,所以我翻转它们以显示我实际遇到的问题。请参阅下面的答案/评论。
strStartDate 和 strEndDate 都是 mm/dd/yyyy 格式。
这段代码通过 DataReader 运行查询并进入 DataTable。我从运行查询中收到的错误是
ORA-01858: 在需要数字的地方发现了一个非数字字符
我尝试以至少十几种不同的方式更改查询和 Parameters.Add() 语句,但还没有任何效果。我究竟做错了什么?
谢谢你。
编辑:
开始日期和结束日期是声明和设置的全局变量,如下所示:
Dim strStartDate As String
Dim strEndDate As String
Protected Sub btnRun_Click(sender As Object, e As EventArgs) Handles btnRun.Click
strStartDate = txtStartDate.Text
strEndDate = txtEndDate.Text
...