UpdateMethod最终调用DAL的更新方法,却一直提示出错:无法更新标识列 'id',我又不想把id列改为可编辑的,这个问题该怎么解决呢?

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-04-29 09:15:15 编辑
      

  2.   


    废掉这种所谓DAL,UpdateMethod直接写个正规的sql语句吧。你编写的这个DAL,连update操作都搞不定,怎么被BLL调用呢?这个问题是底层的,不要让高层次的程序去负责任修改什么东西。
      

  3.   

    问题并非出在我写的DAL里边,ObjectDataSource的UpdateMethod指定的更新方法的参数必须和gridview中绑定列是一致的,在网上找到的参考资料举的例子id列都不为标识列,我想知道id列为标识列时该怎么半。
      

  4.   

    我的gridview是这样的ObjectDataSource指定的是BLL中的更新方法,然后再去调用DAL中的更新方法ContactUpdate
    而ContactUpdate方法参数列表中的id参数是不能去掉的(因为必须跟gridview中的绑定列一致)
    否则就会出现“ObjectDataSource2”未能找到带参数的非泛型方法的错误现在我就算把ContactUpdate方法中更新的sql语句中的id删掉依然会提示无法更新标识列 'id'这个错误        public static int ContactUpdate(int id, string name, string email, string phone, string comment, string bygroup)
            {
                string sql = "update contact set name='"+name+"',email='"+email+"',phone='"+phone +"',comment='"+comment+"',bygroup='"+bygroup+"'";
                int flag = DbHelperSQL.ExecuteSql(sql);
                return flag; 
            }如果把数据库中id列改为可修改的列是能够解决这个问题的,但我现在的id列是标识列,那么这个问题该怎么解决?