例如: 有Form1(button1) 和 Form2(dataGrid1)button1 的事件是查询数据库生成 DataTable dt,如下:
// string sql="select * from user";
// AccessDB acc=new AccessDB();
// DataTable dt=acc.GetDataTable(sql);
Form2 的dataGrid1 以dt为数据源,(dataGrid1.DataSource=dt)在按下Form1 的按钮后,Form1 隐藏,Form2 的DataGrid1 显示查询结果。请问如何在button1的事件和Form2中添加代码?
// string sql="select * from user";
// AccessDB acc=new AccessDB();
// DataTable dt=acc.GetDataTable(sql);
Form2 的dataGrid1 以dt为数据源,(dataGrid1.DataSource=dt)在按下Form1 的按钮后,Form1 隐藏,Form2 的DataGrid1 显示查询结果。请问如何在button1的事件和Form2中添加代码?
Response.Redirect("Form2.aspx");
2.Form2 load 事件
//注:下面这段不要写在form1的button1下,写在form2的load中就可以了
string sql="select * from user";
AccessDB acc=new AccessDB();
DataTable dt=acc.GetDataTable(sql);
dataGrid1.DataSource=dt;
dataGrid1.DataBind();
所以Form2不能生成查询语句,要在Form1中生成,在Form2中显示结果。真是头疼的事!
有一种办法的思路就是:把form2传递给form1,通过this关键字。
或者使用在form2 中修改构造函数
form2 fr= new form2(dataSet) ;
然后用DataView.Filter="条件";
然后再绑定,显示。
Response.Redirect("Form2.aspx");
string sql="select * from user";
Session["sql"]=sql;
2.Form2 load 事件
string sql=Session["sql"].ToString();
AccessDB acc=new AccessDB();
DataTable dt=acc.GetDataTable(sql);
dataGrid1.DataSource=dt;
dataGrid1.DataBind();
Session["sql"]=null;
可以解决此问题,只是用Session不是太好。
string sql="select * from user";
Session["sql"]=sql;
Response.Redirect("Form2.aspx");
2.Form2 load 事件
string sql=Session["sql"].ToString();
AccessDB acc=new AccessDB();
DataTable dt=acc.GetDataTable(sql);
dataGrid1.DataSource=dt;
dataGrid1.DataBind();
Session["sql"]=null;
可以解决此问题,只是用Session不是太好。
我自己也忘记了,偶用的windows窗体,非web!
重写form2的构造函数~
在form1,button按下时,把dataset 传到form2中
Form1的button1中有参数 string i ,
要在Form2的button2中MessageBox.Show出来.怎么写呢?
Form1的代码里
Form2 fm2=new Form2();
fm2.Show(this);Form2的构造函数
Form2(Form1 fm1)
{this.parentform1=fm1;}然后是不是可以自由操做了??
////
MessageBox.Show(this.parentform1.stirng1);