将DATASET转成object类型进行传递!

在网络传输中,dataset的容易是很大的,如果传递数据量大的情况下,很影响速度。可以在中间层将dataset封装放到一个多维的数组中,传递的容量将大大减少。再由客户端进行折分出有属性的类,再由其他控件绑定。
例子如下:
中间层
  public ArrayList pro_stock_seek1()
  {

   //OracleConnection myCn=new OracleConnection("Data Source=STZYD;User ID=zyd;PASSWORD=www8739146;persist security info=False;");
   OracleConnection myCn=new OracleConnection(Login.strConn);
   try
   {
    myCn.Open();
    
    //object[] getstr=new object[2];
    ArrayList arr1=new ArrayList();
    ArrayList arr2=new ArrayList();
    ArrayList arr3=new ArrayList();
    OracleCommand MyDa=new OracleCommand("pro_stock_seek1",myCn);
    MyDa.CommandType=CommandType.StoredProcedure;

    OracleParameter []pa ={ new OracleParameter("cur_recorder",OracleType.Cursor)};
    pa[0].Direction = ParameterDirection.Output;
    MyDa.Parameters.Add(pa[0]);
    
    OracleDataReader MyDataRead=MyDa.ExecuteReader();
    while
     (MyDataRead.Read())
    {
     arr1.Add(MyDataRead.GetInt32(0));
     arr2.Add(MyDataRead.GetString(1));
    }
    arr3.Add(arr1);
    arr3.Add(arr2);

    return arr3;
   }
   catch(System.Data.SqlClient.SqlException er)
   {
    zydlogin mylog=new zydlogin();
    throw mylog.GetException(er,er.Message);
   }
   finally
   {
    //myCommand.Dispose() ;
    myCn.Close() ;
   }
  }

客户端:
 public class listbox//将对象用listbox封装,以方便comboBox使用
 {
  private string myShortName ;
  private string myLongName ;

  public  listbox(string strLongName, string strShortName)
  {

   this.myShortName = strShortName;
   this.myLongName = strLongName;
  }

  public  string DisplayMember
  {
   get
   {
    return myShortName;
   }
  }

  public  string ValueMember
  {
       
   get
   {
    return myLongName ;
   }
  }
 }
  public ArrayList Bin_Stock()
  {

   PublicConn new_Conn=new PublicConn();
   object[] obj=new_Conn.Web_Base_Data.pro_stock_seek1();
   object[] str1=(object[])obj[0];
   object[] str2=(object[])obj[1];
   ArrayList arr=new ArrayList();
   for(int i=0;i<str1.Length;i++)
   {
    arr.Add(new listbox(str1[i].ToString(),str2[i].ToString()));
   }
   return arr;
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值