C# 从属下拉列表。从一个列表筛选到另一个列表
我在将返回参数传递到第二个下拉列表时遇到问题。第二个列表完全依赖于第一个列表中的选择。我很肯定SP是好的。同样,我的问题是传递值 存储过程C# 从属下拉列表。从一个列表筛选到另一个列表,c#,asp.net,oracle,C#,Asp.net,Oracle,我在将返回参数传递到第二个下拉列表时遇到问题。第二个列表完全依赖于第一个列表中的选择。我很肯定SP是好的。同样,我的问题是传递值 存储过程 PROCEDURE ev_dropdown( cur_out IN OUT eqpack.t_cur_out, p_result OUT VARCHAR2, p_reference_id IN NUMBER ) IS BEGIN OPEN cur_out FOR
PROCEDURE ev_dropdown(
cur_out IN OUT eqpack.t_cur_out,
p_result OUT VARCHAR2,
p_reference_id IN NUMBER
)
IS
BEGIN
OPEN cur_out FOR
SELECT ev_id, ev
FROM event WHERE a_ref = p_reference_id;
EXCEPTION
WHEN OTHERS
THEN
p_result :=
'An error occurred in get_events_dropdown - ' || SQLERRM;
END ev_dropdown;
.cs
aspx.cs
protected void ddlSys_SelectedIndexChanged1(object sender, EventArgs e)
{
int p = int.Parse(ddlSystems.SelectedItem.Value);
dbase.populateSpecificEvent(p);
DataTable dt1 = dbase.PopulateEvDropDown();
ddlEv.DataSource = dt1;
ddlEv.DataTextField = "name";
ddlEv.DataValueField = "id";
ddlEv.DataBind();
}
我相信您希望更新存储过程,以便实际上只执行SELECT语句,而不显式地创建自己的游标。然后调用(我看到您正在这样做),它将返回一个,基本上是一个只向前的只读游标 我将删除以下额外行:
connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();
command.Connection.Dispose();
如果将存储过程更改为实际上只是一个select语句,则可以使用while(reader.Read())
循环一次读取一行,然后将它们插入到数据表中,或者只需调用
connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();
command.Connection.Dispose();