0

我想用数据库中的数据填充 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();
    }
}
4

3 回答 3

5

编辑:

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

var parameter = cmd.CreateParameter();
parameter.ParameterName = "CursusId";
parameter.Value = DropDownList1.SelectedValue;
cmd.Parameters.Add(parameter);
于 2012-10-12T10:10:22.203 回答
0

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

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

否则,您需要使用采用以下Add方法的方法DbParameter

cmd.Parameters.Add(new DbParameter { ParameterName = "CursusId", 
                                     Value = DropDownList1.SelectedValue});
于 2012-10-12T10:16:11.060 回答
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)

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

于 2012-10-12T10:16:21.367 回答