private void btnStart_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(txtConnectionString.Text);
            con.Open();
            SqlDataAdapter sda = new SqlDataAdapter("select * from Forum", con);
            DataSet ds = new DataSet();
            sda.Fill(ds, "Forum");
            dataGrid1.DataSource = ds.Tables["Forum"];
        } private void btnSave_Click(object sender, EventArgs e)
        {
             
        }
请问一下大家,在Windows应用程序中,方法中怎么传对象呢?就象上面,我要在第二个单击事件里得到第一个方法里的ds对象,有什么简单的写法呢?谢谢大家!

解决方案 »

  1.   

    你的dataGrid1 是winform 里面的DataGrid 吧 不是ASP.NET 的DataGrid (因为你没有用DataBind)那样的话, 
    你只要DataSet ds = ((DataTable)dataGrid1.DataSource).DataSet;就可以得到那个ds 的对象了
      

  2.   

    谢谢,这样确实可以得到ds对象,如果我还想再得到sda这个对象,那我的整个程序应该怎么写好呢.为要用的对象都建立一个返回的方法吗?望大家指教!
      

  3.   

    你可以把这个sda 放到class 里面,那样就class里面的每个method都可以得到这个对象,但这个关系到整个class 的全局设计问题,要看具体需求才能决定
      

  4.   

    看你的代码,应该是两个事件中共用一个数据库资源,但你想在第二个事件中直接使用第一个事件里的对象是不行的,因为事件不能额外传递数据。你可以将数据库操作放到一个单独的类中,此类最好用单例模式。这样你在这个类中定义返回各种对象的方法就行了。如你上面的例子只要:private void btnStart_Click(object sender, EventArgs e) 
            { 
                dataGrid1.DataSource = mydb.gettable("sql语句或表名"); 
            } 
    gettable就是返回table对象的方法。