我在page_load事件中写了一个sql语句,从数据库读出一条记录,用SqlDataAdapter写入ds.tables["test"]
然后我在button1单击事件中写入一个操作:
GridView.DataSource=ds.Tables["test"];
GridView.DataBind();
测试没有问题,GridView能将记录读出来
然后我创建了一个button2,将page_load事件中的代码全盘写入button2的单击事件.
再次测试,先单击button2,然后单击button1,结果没有任何效果.
应该说单击button2和page_load一样应该将sql记录写入ds.tables["test"]了啊,可是为什么button2的单击事件没有效果呢?
然后我在button1单击事件中写入一个操作:
GridView.DataSource=ds.Tables["test"];
GridView.DataBind();
测试没有问题,GridView能将记录读出来
然后我创建了一个button2,将page_load事件中的代码全盘写入button2的单击事件.
再次测试,先单击button2,然后单击button1,结果没有任何效果.
应该说单击button2和page_load一样应该将sql记录写入ds.tables["test"]了啊,可是为什么button2的单击事件没有效果呢?
...2个代码一样又不会在DataSet中追加数据 顶多是重新绑定数据而已
写是写了 只不过又重新创建了一个ds.tables["test"] 记录还是1
楼主你怎么脑子转不过来呢?你又实例化了一个新的ds.tables["test"]根本就没有进行添加操作。。
page_load有事件的图
运行效果:
page_load没有事件,button2有事件的图
运行效果:
public partial class _Default : System.Web.UI.Page
{
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection sqlcon = new DBcon().GetConnection();
sqlcon.Open();
string sel = "select * from shop where shopid=1";
SqlDataAdapter sda = new SqlDataAdapter(sel, sqlcon);
sda.Fill(ds, "test");
}
protected void bt1_Click(object sender, EventArgs e)
{
gr.DataSource = ds.Tables["test"];
gr.DataBind();
}
protected void bt2_Click(object sender, EventArgs e)
{
}
}运行之后点击bt1_Click能显示一条结果这个是第二次运行的代码:
public partial class _Default : System.Web.UI.Page
{
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void bt1_Click(object sender, EventArgs e)
{
gr.DataSource = ds.Tables["test"];
gr.DataBind();
}
protected void bt2_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new DBcon().GetConnection();
sqlcon.Open();
string sel = "select * from shop where shopid=1";
SqlDataAdapter sda = new SqlDataAdapter(sel, sqlcon);
sda.Fill(ds, "test");
}
}运行之后点击bt1_Click页面上没有显示任何数据
哎....只不过又做了一次查询,绑定了DataSet而已,没有在DataSet记录后追加的操作...