Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从属下拉列表。从一个列表筛选到另一个列表_C#_Asp.net_Oracle - Fatal编程技术网

C# 从属下拉列表。从一个列表筛选到另一个列表

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

我在将返回参数传递到第二个下拉列表时遇到问题。第二个列表完全依赖于第一个列表中的选择。我很肯定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

         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();