2

私はプログラミングが初めてで、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 リーダーでプログラム エラーが発生しました。そこでブレークポイントを使用してすべてをチェックしたところ、両方のパラメーターに正しい値がありました。助けていただければ幸いです。

4

1 に答える 1