添加参数到Code后面的Select查询

时间:2012-10-12 10:05:36

标签: c# asp.net

我想用数据库中的数据填充GridView,让用户选择显示“Cursussen”表的哪一部分。他可以通过更改下拉框中参数的选择来完成此操作。

错误: “Add”方法没有重载需要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();
    }
}

3 个答案:

答案 0 :(得分:5)

编辑:

正如Oded在评论中指出的那样,我错过了你正在使用DbCommand

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

答案 1 :(得分:0)

您使用的是DbCommand - 如果您将其更改为SqlCommand,则可以执行以下操作:

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

否则,您需要使用Add

DbParameter方法
cmd.Parameters.Add(new DbParameter { ParameterName = "CursusId", 
                                     Value = DropDownList1.SelectedValue});

答案 2 :(得分: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)

然后将参数列表添加到命令中。