我想用数据库中的数据填充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();
}
}
答案 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)
然后将参数列表添加到命令中。