2013-04-04 73 views
2

我是编程新手,并且在VB.net中编写的Web应用程序出现问题。我在我的项目中有一个Access数据库,并使用参数化查询从它检索信息。奇怪的是,我在另一个页面上使用几乎相同的查询,但工作正常,但是这给了我一个或多个所需参数没有给出值的错误。我一直在大部分时间都在搜索,并意识到问题已被问到,但无法找到解决我的问题的方法。我想我正在使用“?”正确地说,按照正确的顺序有正确数量的参数,并且一切拼写正确。这里是我的代码:OLEDBException:在vb.net中没有给出一个或多个必需参数的值

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线昏暗的读者的程序错误。我用了一个断点来检查一切,两个参数都有正确的值。我感谢任何帮助,谢谢。

+0

什么叫 “正确的价值” 是什么意思? – luchosrock 2013-04-04 21:43:01

回答

3

名称有空间需要括号:

"FROM [Rainfall Probability] " 

你的号字段名称可能也:

SELECT [1999], [2000] etc... 
+0

谢谢!这似乎解决了这个问题。 – Megan 2013-04-05 14:18:34

相关问题