2013-12-09 26 views
0
private void PopuniListu(){ 
    listBox1.Items.Clear(); 

    conn = new OleDbConnection(connString); 
    conn.Open(); 

    cmd.Connection = conn; 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "SELECT Imeiprezimeautora FROM Tabela1"; 

    dr = cmd.ExecuteReader(); 

    while (dr.Read()) 
    { 
     listBox1.Items.Add(dr.GetValue(0)); 
    } 

    dr.Close(); 
    conn.Close(); 
} 

這裏是錯誤:沒有用於一個或多個必需參數博士給定值=的ExecuteReader()

No value given for one or more required parameters.

dr = cmd.ExecuteReader()

+2

初始化一個OleDbCommand沒有可測量的服務表現懲罰並沒有一個名爲'Imeiprezimeautora'表'Tabela1' – Steve

+0

領域Imeiprezimeautora是表Tabela1 100%視野... – user3083925

回答

1

當使用OleDb提供商(在特定MS-訪問,但我不能排除對於其他提供者也是如此)解析引擎會查詢查詢的表中是否存在SELECT子句中的列列表的每個部分。如果由於任何原因(通常是列名中的拼寫錯誤),引擎無法找到相應的列,則會將該名稱視爲參數,並且期望OleDbCommand.Parameters集合中提供了參數。
如果沒有參數存在,則會引發上述錯誤。

另一種可能性是,您不在上面的代碼中初始化cmd變量。
這意味着您正在使用OleDbCommand的全局變量。
可能已用於其他查詢及其參數集合的變量不是空的。

嘗試執行查詢

cmd.Parameters.Clear(); 
cmd.CommandText = "SELECT Imeiprezimeautora FROM Tabela1"; 

但是之前加入這行,如果是這樣的問題,那麼我真的建議你重新考慮這一做法,並避免全局變量這樣的工作。
在這裏,定義和本地

相關問題