在项目中我使用了,Access数据库进行保存数据,结果发现这种数据库来保存数据时会有保存数据不及时的现像出现,我是这样子进行测试的,我先用一条update语句进行修改数据库里面的一条记录,当修改提示成功后,我马上打开数据库当中的此表查看数据发现还是原来修改前的值,我开始以为是我的update修改语句 不正确,可是当我关闭这个表窗体的时候我再次打开此表才发现里面的记录已更新过来了。也就是说我的update语句 没有出错,只是他更新的这个动作,很慢。我不明白我这是为什么, 不知有没有那位朋友也有同样的问题没有,其实后来我发现在我前面发的上一个贴的主要原因就是这个影响的。我的语句是这样子的,sql = string.Format("update CargoRebate set CargoRebate='{3}' where CardName ='{0}' and CargoNo ='{1}' and CargoName='{2}'", info.CardName, info.SargoNo, info.SargoName, info.SargoRabate);大家讨论一下吧!

解决方案 »

  1.   

    update CargoRebate set CargoRebate='0.2' where CardName ='88' and CargoNo ='4' and CargoName='dgfg'
      

  2.   

    这是我绑定数据的方法
            /// <summary>
            /// 进行模糊查询信息
            /// </summary>
            private void findInfo()
            {
                //不进行自动添加列
                this.dataGridView1.AutoGenerateColumns = false;
                this.dataGridView1.DataSource = null;
                string infoType = "%";
                if (this.lbxCargoType.SelectedIndex > 0)
                {
                    //没有选择商品类别
                    infoType = this.lbxCargoType.SelectedItem.ToString();
                }            //进行模糊查询信息
                string sql = string.Format("select a.*,b.CargoRebate from Cargo a left join (select * from CargoRebate where CardName='{1}') b on a.Name=b.CargoName and a.No1=b.CargoNo where a.Type like '{0}' ", infoType,Dayparting.opCardName);            //cargodata.GetCargosFromData(sql);
                //int i = 0;
                DataSet ds = new DataSet();
                
                cargodata.GetCargosFromData(sql, ref ds);            BindListData(ds.Tables[0]);            //如果没有进行过更改,则默认为1,即不打折。
                SetNoRebateCargo(ref ds);            this.dataGridView1.DataSource = ds.Tables[0];
                this.dataGridView1.Refresh();        }
      

  3.   

    ql = string.Format("update CargoRebate set CargoRebate='{3}' where CardName ='{0}' and CargoNo ='{1}' and CargoName='{2}'", info.CardName, info.SargoNo, info.SargoName, info.SargoRabate);
    你只修改红色部份这个吧。