開始日と終了日のユーザー入力を読み取る Web ページで、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() ステートメントを少なくとも 12 の異なる方法で変更しようとしましたが、まだ何も機能していません。私は何を間違っていますか?
ありがとうございました。
編集:
開始日と終了日は、次のように宣言および設定されるグローバル変数です。
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
...