请教:使用OleDB方式修改Access数据库表后,立即获取该表记录显示,竟然显示的是修改前的数据~~

johnnytbz 2006-02-19 12:10:39
如题:
修改Access数据库表
public int ExecuteSQL(string strSQL)
{
int RowsAffected = 0; //被更新的行数
this.Open();
this.oCommand = new OleDbCommand(strSQL,this.oConnection);
RowsAffected = this.oCommand.ExecuteNonQuery();
return RowsAffected;
}
获取access数据库表
public DataSet GetDataSet(string strSQL,string TableName)
{
try
{
this.Open();
this.oAdapter = new OleDbDataAdapter(strSQL,this.oConnection);
this.oDataSet = new DataSet();
this.oAdapter.Fill(this.oDataSet,TableName);
return this.oDataSet;
}
catch(Exception ex)
{
ex.ToString();
return null;
}
}
前台:
Data.DataBase oDB = new WebTest.Data.DataBase() ;
oDB.ExecuteSQL( "UPDATE [City] SET Num = Num+5 WHERE id = 1 ");
DataSet oDS = oDB.GetDataSet( "Select * from [City] " , "t" ) ;
DataGrid1.DataSource = oDS.Tables["t"] ;
DataGrid1.DataBind();
...全文
340 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnnytbz 2006-02-27
  • 打赏
  • 举报
回复
今天结贴~

回复者有分~~
wwwtony110 2006-02-22
  • 打赏
  • 举报
回复
你有没有试过先?这样就等于重新加载了一次。
johnnytbz 2006-02-22
  • 打赏
  • 举报
回复
to:pgy8288(晚枫)
数据库里的数据改掉了~~

to:y1g1y1
早试过了
更新完就
关闭连接
打开连接
再提取数据
一样是不行 不信的话你建个简单的access试试
y1g1y1 2006-02-22
  • 打赏
  • 举报
回复
前台:
Data.DataBase oDB = new WebTest.Data.DataBase() ;
oDB.ExecuteSQL( "UPDATE [City] SET Num = Num+5 WHERE id = 1 ");
关闭连接
打开连接
DataSet oDS = oDB.GetDataSet( "Select * from [City] " , "t" ) ;
DataGrid1.DataSource = oDS.Tables["t"] ;
DataGrid1.DataBind();

即可。
pgy8288 2006-02-22
  • 打赏
  • 举报
回复
数据库里的数据改掉了么?
johnnytbz 2006-02-22
  • 打赏
  • 举报
回复
昏~治标不治本呀~
难道真的没有办法?
ilovems 2006-02-22
  • 打赏
  • 举报
回复
ACCESS是这样子的啦,要等待一定时间才能执行,你把线程挂起0.5秒吧
johnnytbz 2006-02-22
  • 打赏
  • 举报
回复
试过了,不行~
wwwtony110 2006-02-21
  • 打赏
  • 举报
回复
这个问题我也试过,我的代码如下,其中有两句是可以实现你说的功能的 try
{
int pay2=int.Parse(this.textBox4.Text);
int income2=int.Parse(this.textBox5.Text);
string StrSQL="UPDATE 个人用户表 SET year='"+this.textBox1.Text+"'AND Month='"+this.textBox2.Text+"'AND Day='"+this.textBox3.Text+"'AND Pay="+pay2+"AND Income="+income2+"AND Reamark='"+this.textBox6.Text+"'"+ "WHERE Year='"+this.textBox1.Text+"'AND Month='"+this.textBox2.Text+"'AND Day='"+this.textBox3.Text+"'AND Pay="+pay2+"AND Income="+income2+"AND Reamark='"+this.textBox6.Text+"'";
this.oleDbCommand1.CommandText=StrSQL;
this.oleDbCommand1.Connection=this.oleDbConnection1;
this.oleDbConnection1.Open();
this.oleDbCommand1.ExecuteNonQuery();
this.oleDbConnection1.Close();
this.dataSet1.Tables["个人用户表"].Rows[this.MyBind.Position].BeginEdit();
this.dataSet1.Tables["个人用户表"].Rows[this.MyBind.Position].EndEdit();
this.dataSet1.AcceptChanges();
this.oleDbDataAdapter1.Fill(this.dataSet1,"个人用户表");
this.MyBind.Position=0;
this.dataSet1.Clear();//大概就是这句
this.oleDbDataAdapter1.Fill(this.dataSet1);//和这句
MessageBox.Show("删除成功!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
johnnytbz 2006-02-21
  • 打赏
  • 举报
回复
有刷新了 不行
高手 帮帮忙呀~~
johnnytbz 2006-02-21
  • 打赏
  • 举报
回复
想来想去还是不懂
只有等待高手~~~
johnnytbz 2006-02-21
  • 打赏
  • 举报
回复
this.dataSet1.Clear();//大概就是这句
this.oleDbDataAdapter1.Fill(this.dataSet1);//和这句
不就等于把DataSet清空了,哪里还有数据

等待解决,就结贴~~~
johnnytbz 2006-02-20
  • 打赏
  • 举报
回复
前台的代码直接写在web页面的page_Load中,和IsPostBack没有关系,试过了
lingbo_wx 2006-02-20
  • 打赏
  • 举报
回复
看看有没有刷新数据绑定
johnnytbz 2006-02-20
  • 打赏
  • 举报
回复
高手帮帮忙呀,分不够再加~~
kkeemmgg 2006-02-19
  • 打赏
  • 举报
回复
可能和数据库操作没有关系.而是页面数据提交和绑定的问题.注意Page.IsPostBack
iuhxq 2006-02-19
  • 打赏
  • 举报
回复
试试重新定向一下,或者重新绑定?
Ravezhang 2006-02-19
  • 打赏
  • 举报
回复
前台的代码是写在哪的?

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧