DataGrid无法实现自动刷新

linzhifeng 2004-05-01 01:06:47
在DataGrid里建了个EditCommandColumn,点击后有"更新"/"取消"两个按钮,现在更新后,文本框中的数据还是更新前的,不自动变为新数据,为什么?
我已经重新绑定了!

源代码:

private void Page_Load(object sender, System.EventArgs e) {


// 在此处放置用户代码以初始化页面
//连接数据库
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
string DataBase = Server.MapPath("../ShuJu/tpxt_fl.mdb");
strConnection += "Data Source=" + DataBase;
MyConnection = new OleDbConnection(strConnection);
//创建OleDbAdapter对象
string strsql="select * from LeiMing_fl where daleiming='"+"摄影作品"+"'";
MyCommand=new OleDbDataAdapter(strsql,MyConnection);
ds=new DataSet();
//将查询结果填充到DataSet对象中
MyCommand.Fill(ds,"LeiMing_fl");
//将DataGrid的数据源设定为DataSet对象
Source=new DataView(ds.Tables["LeiMing_fl"]);

//实现数据绑定
if(!IsPostBack){
DataGrid1.DataSource=Source;
DataGrid1.DataBind();
}
}

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
string sxiaoleiming=((TextBox)e.Item.Cells[1].Controls[0]).Text;
int sid=Convert.ToInt32(e.Item.Cells[0].Text);
Label1.Text=sxiaoleiming+sid.ToString();
string strsql_up="update LeiMing_fl set xiaoleiming='"+sxiaoleiming+"' where id="+sid;
OleDbCommand MyCommand1=new OleDbCommand(strsql_up,MyConnection);
MyCommand1.Connection.Open();
MyCommand1.ExecuteNonQuery();
MyCommand1.Connection.Close();
DataGrid1.EditItemIndex = -1;
DataGrid1.DataSource=Source;
DataGrid1.DataBind();

}
...全文
46 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bitm 2004-05-01
study
  • 打赏
  • 举报
回复
ztx998 2004-05-01
编辑这么写,更新这么写

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string zbmc = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
string zbgs = ((TextBox)e.Item.Cells[2].Controls[0]).Text;

Conn=new DBServer();
Conn.Open();
string strSql="update zbtable set zbmc='"+zbmc+"',zbgs='"+zbgs+"' where zbbm='"+e.Item.Cells[0].Text+"'";

SqlCommand sqlCommandUpdate = new SqlCommand(strSql,Conn.Connection);
sqlCommandUpdate.ExecuteNonQuery();
Conn.Close();
DataGrid1.EditItemIndex=-1;

mikecatbind();//重新绑定
ShowStats();
Label3.Text="<script language='javascript'>alert('信息已保存')</script>";
}

private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=Convert.ToInt32(e.Item.ItemIndex);
mikecatbind();//重新绑定
ShowStats();
}
  • 打赏
  • 举报
回复
ztx998 2004-05-01
if(!IsPostBack){
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
string DataBase = Server.MapPath("../ShuJu/tpxt_fl.mdb");
strConnection += "Data Source=" + DataBase;
MyConnection = new OleDbConnection(strConnection);
//创建OleDbAdapter对象
string strsql="select * from LeiMing_fl where daleiming='"+"摄影作品"+"'";
MyCommand=new OleDbDataAdapter(strsql,MyConnection);
ds=new DataSet();
//将查询结果填充到DataSet对象中
MyCommand.Fill(ds,"LeiMing_fl");
//将DataGrid的数据源设定为DataSet对象
Source=new DataView(ds.Tables["LeiMing_fl"]);

DataGrid1.DataSource=Source;
DataGrid1.DataBind();
}

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
string sxiaoleiming=((TextBox)e.Item.Cells[1].Controls[0]).Text;
int sid=Convert.ToInt32(e.Item.Cells[0].Text);
Label1.Text=sxiaoleiming+sid.ToString();
string strsql_up="update LeiMing_fl set xiaoleiming='"+sxiaoleiming+"' where id="+sid;
OleDbCommand MyCommand1=new OleDbCommand(strsql_up,MyConnection);
MyCommand1.Connection.Open();
MyCommand1.ExecuteNonQuery();
MyCommand1.Connection.Close();
DataGrid1.EditItemIndex = -1;
DataGrid1.DataSource=Source;
DataGrid1.DataBind();

}
  • 打赏
  • 举报
回复
linzhifeng 2004-05-01
不行啊,这么改后,点击"编辑"按钮后,什么都没有了!
数据库连接等等都在第一次打开页面时执行,以后打开页面就不执行了.
  • 打赏
  • 举报
回复
popcode 2004-05-01
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
string DataBase = Server.MapPath("../ShuJu/tpxt_fl.mdb");
strConnection += "Data Source=" + DataBase;
MyConnection = new OleDbConnection(strConnection);
//创建OleDbAdapter对象
string strsql="select * from LeiMing_fl where daleiming='"+"摄影作品"+"'";
MyCommand=new OleDbDataAdapter(strsql,MyConnection);
ds=new DataSet();
//将查询结果填充到DataSet对象中
MyCommand.Fill(ds,"LeiMing_fl");
//将DataGrid的数据源设定为DataSet对象
Source=new DataView(ds.Tables["LeiMing_fl"]);
放在!IsPostBack里
你可以看看quickstart的例子
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-01 01:06
社区公告
暂无公告