2012-10-12 33 views
0

我想用數據庫中的數據填充GridView並讓用戶選擇顯示「Cursussen」表的哪一部分。他可以通過更改下拉框中參數的選擇來完成此操作。將參數添加到後面代碼中的Select查詢

錯誤: 方法「添加」沒有重載需要2個參數。

protected void Page_Load(object sender, EventArgs e) 
{ 
    ConnectionStringSettings planner = 
     ConfigurationManager.ConnectionStrings["CursusDatabase"]; 
    DbConnection connection = new SqlConnection(planner.ConnectionString); 
    DbCommand cmd = connection.CreateCommand(); 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = 
     "SELECT * FROM Cursussen " + 
     "WHERE CursusId = @CursusId"; 
    cmd.Parameters.Add("CursusId", DropDownList1.SelectedValue); // <-- here 

    connection.Open(); 
    DbDataReader rdr = cmd.ExecuteReader(); 
    DataTable planning = new DataTable(); 
    planning.Load(rdr); 
    connection.Close(); 

    GridView1.DataSource = planning; 
    GridView1.DataBind(); 
    } 
} 

回答

5

編輯:

如俄德在評論中規定的,我錯過了你正在使用的DbCommand

var parameter = cmd.CreateParameter(); 
parameter.ParameterName = "CursusId"; 
parameter.Value = DropDownList1.SelectedValue; 
cmd.Parameters.Add(parameter); 
+1

哪個不行,因爲OP使用'DbConnection'和'DbCommand'而不是'SqlConnection'和'SqlCommand'。 – Oded

+0

@Oded,我錯過了,謝謝指出 – Habib

+0

我應該使用Sqlconnection和命令而不是dbconnection嗎? – Dave

0

您正在使用DbCommand - 如果你改變這是SqlCommand,你可以請執行以下操作:

cmd.Parameters.AddWithValue("CursusId", DropDownList1.SelectedValue); 

否則,您需要使用Add方法,它接受DbParameter

cmd.Parameters.Add(new DbParameter { ParameterName = "CursusId", 
            Value = DropDownList1.SelectedValue}); 
0
Dim myParamList As New List(Of SqlParameter)() 
Dim myParam As SqlParameter = Nothing 

myParam = New SqlParameter("@X", SqlDbType.Int) 
myParam.Value = Y 
myParamList.Add(myParam) 

參數列表然後加入到該命令。

相關問題