zoukankan      html  css  js  c++  java
  • .net 操作Access的一个奇怪的问题

          昨天晚上写一个小项目,用的.net2003+Access,写了一个针对新闻表的增删改类,添加,删除都测试通过.可是就卡在编辑上面. 因为的数据操作类是用SqlHelper修改的,所以先怀疑时不时那里有问题. 设了断点走了一圈,发现那里肯定没有问题,方法也正确,并且还不报错.当时真是感觉非常恼火.以下是当时的代码
    /// <summary>
      /// 更新一条新闻
      /// </summary>
      /// <returns></returns>
      public bool Update()
      {
       StringBuilder strSql=new StringBuilder();
       strSql.Append("update News set ");
       strSql.Append("NewTypeID_News=@NewTypeID_News,");
       strSql.Append("Title_News=@Title_News,");
       strSql.Append("Content_News=@Content_News,");
       strSql.Append("ImgPath_News=@ImgPath_News");
       strSql.Append(" where ID_News=@ID_News");
       OleDbParameter[] parameters = {
                  new OleDbParameter("@ID_News", OleDbType.Integer,4),
                 new OleDbParameter("@NewTypeID_News", OleDbType.Integer,4),
                 new OleDbParameter("@Title_News", OleDbType.VarChar,255),
                 new OleDbParameter("@Content_News", OleDbType.LongVarChar),
                 new OleDbParameter("@ImgPath_News", OleDbType.VarChar,255)
                           };
        parameters[0].Value = this.ID_News;
       parameters[1].Value = this.NewTypeID_News;
       parameters[2].Value = this.Title_News;
       parameters[3].Value = this.Content_News;
       parameters[4].Value = this.ImgPath_News;
         return OLDBHelper.ExecuteNonQuery(strSql.ToString(),parameters);
      }

          经过几个小时的查资料,测试等等,仍然没有一点进展.当时已经接近崩溃的边缘. 突然发现代码里有一点可能引发问题的地方
    /// <summary>
      /// 更新一条新闻
      /// </summary>
      /// <returns></returns>
      public bool Update()
      {
       StringBuilder strSql=new StringBuilder();
       strSql.Append("update News set ");
       strSql.Append("NewTypeID_News=@NewTypeID_News,");
       strSql.Append("Title_News=@Title_News,");
       strSql.Append("Content_News=@Content_News,");
       strSql.Append("ImgPath_News=@ImgPath_News");
       strSql.Append(" where ID_News=@ID_News");
       OleDbParameter[] parameters = {
                  new OleDbParameter("@ID_News", OleDbType.Integer,4),
                 new OleDbParameter("@NewTypeID_News", OleDbType.Integer,4),
                 new OleDbParameter("@Title_News", OleDbType.VarChar,255),
                 new OleDbParameter("@Content_News", OleDbType.LongVarChar),
                 new OleDbParameter("@ImgPath_News", OleDbType.VarChar,255)
                           };
       parameters[0].Value = this.ID_News;
       parameters[1].Value = this.NewTypeID_News;
       parameters[2].Value = this.Title_News;
       parameters[3].Value = this.Content_News;
       parameters[4].Value = this.ImgPath_News;
         return OLDBHelper.ExecuteNonQuery(strSql.ToString(),parameters);
      }
          在Sql语句里@ID_News是最后出现的,但是在parameters数组 里面 它是在第一个位置,我抱着死马当活马医的心理,把代码修改成下面样子
    /// <summary>
      /// 更新一条新闻
      /// </summary>
      /// <returns></returns>
      public bool Update()
      {
       StringBuilder strSql=new StringBuilder();
       strSql.Append("update News set ");
       strSql.Append("NewTypeID_News=@NewTypeID_News,");
       strSql.Append("Title_News=@Title_News,");
       strSql.Append("Content_News=@Content_News,");
       strSql.Append("ImgPath_News=@ImgPath_News");
       strSql.Append(" where ID_News=@ID_News");
       OleDbParameter[] parameters = {
                
                 new OleDbParameter("@NewTypeID_News", OleDbType.Integer,4),
                 new OleDbParameter("@Title_News", OleDbType.VarChar,255),
                 new OleDbParameter("@Content_News", OleDbType.LongVarChar),
                 new OleDbParameter("@ImgPath_News", OleDbType.VarChar,255),
                 new OleDbParameter("@ID_News", OleDbType.Integer,4)
               };
       
       parameters[0].Value = this.NewTypeID_News;
       parameters[1].Value = this.Title_News;
       parameters[2].Value = this.Content_News;
       parameters[3].Value = this.ImgPath_News;
       parameters[4].Value = this.ID_News;
       return OLDBHelper.ExecuteNonQuery(strSql.ToString(),parameters);
      }
          结果 测试马上通过.看着弹出来的编辑成功的对话框,自己当时有种要去炸掉微软的冲动,苍天啊,上帝啊,盖茨啊  还我那4个小时的时间
          
  • 相关阅读:
    关于连通性问题的Tarjan算法暂结
    【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学
    Kruskal算法及其类似原理的应用——【BZOJ 3654】tree&&【BZOJ 3624】[Apio2008]免费道路
    【NOIP模拟赛】Drink 二维链表+模拟
    【BZOJ 2957】楼房重建&&Codechef COT5 Count on a Treap&&【NOIP模拟赛】Weed 线段树的分治维护
    【BZOJ 4198】[Noi2015]荷马史诗 哈夫曼编码
    【NOIP模拟赛】chess 建图+spfa统计方案数
    【TMD模拟赛】上低音号 链表
    【TMD模拟赛】黄金拼图 Cao
    【BZOJ 4007】[JLOI2015]战争调度 DP+搜索+状压
  • 原文地址:https://www.cnblogs.com/lzhdizhen/p/783695.html
Copyright © 2011-2022 走看看