私はプログラミングが初めてで、VB.net でコーディングしている Web アプリケーションに問題があります。プロジェクトに Access データベースがあり、パラメーター化されたクエリを使用して情報を取得しています。奇妙なことに、正常に動作する別のページでほぼ同じクエリを使用していますが、これにより「1 つ以上の必須パラメーターに値が指定されていません」というエラーが表示されます。私は一日のほとんどを検索しており、質問がされていることに気付きましたが、私の問題の解決策が見つかりません. 「?」を使っていると思います。正しく、正しい順序で正しい数のパラメーターを持ち、すべてが正しいスペルです。これが私のコードです:
Dim strWthStn As String
strWthStn = cboRainProb2.Text
Dim strWthStnParm As New OleDb.OleDbParameter()
strWthStnParm.Value = strWthStn
Dim strMonth As String
strMonth = cboRainProb.Text
Dim strMonthParm As New OleDb.OleDbParameter()
strMonthParm.Value = strMonth
Dim sql As String 'Query to select the station for rainfall probability values
sql = "SELECT 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 " &
"FROM Rainfall Probability " &
"WHERE Station = ?" &
"AND Mth = ?"
'Connects to the Access database and selects data based on query
Dim AccessConnect As String
AccessConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Megan\Visual Studio Projects\DroughtCalculatorND_Web\DroughtCalculatorND_Web\NDStations.mdb"
Dim conn As New OleDb.OleDbConnection
Dim selectCommand As New OleDbCommand(sql, conn)
selectCommand.Parameters.Add(strWthStnParm)
selectCommand.Parameters.Add(strMonthParm)
conn.ConnectionString = AccessConnect
conn.Open()
'Reads the data into a list
Dim reader As OleDbDataReader =
selectCommand.ExecuteReader(CommandBehavior.CloseConnection)
Dim RainByYear As New List(Of Double)
reader.Read()
RainByYear.Add(reader("1999"))
RainByYear.Add(reader("2000"))
RainByYear.Add(reader("2001"))
RainByYear.Add(reader("2002"))
RainByYear.Add(reader("2003"))
RainByYear.Add(reader("2004"))
RainByYear.Add(reader("2005"))
RainByYear.Add(reader("2006"))
RainByYear.Add(reader("2007"))
RainByYear.Add(reader("2008"))
RainByYear.Add(reader("2009"))
RainByYear.Add(reader("2010"))
RainByYear.Sort()
等
OleDBDataReader 行の Dim リーダーでプログラム エラーが発生しました。そこでブレークポイントを使用してすべてをチェックしたところ、両方のパラメーターに正しい値がありました。助けていただければ幸いです。