DbProviderFactory DbProviderFactory = DbProviderFactories.GetFactory(this.m_ProviderInvariantName);
            using (DbConnection conn = DbProviderFactory.CreateConnection())
            {
                conn.ConnectionString = this.m_ConnStr;
                conn.Open();
                string sSql = "Update T_Sequence Set SequenceCode = @SequenceCode"
                    + " Where SequenceDistrict = @SequenceDistrict";
                //string sSql = "insert into T_Sequence(SequenceDistrict,SequenceCode)"
                //    + " values(@SequenceDistrict,@SequenceCode)";
                DbCommand dbCommand = DbProviderFactory.CreateCommand();
                dbCommand.Connection = conn;
                dbCommand.CommandText = sSql;
                DbParameter pa1 = DbProviderFactory.CreateParameter();
                pa1.ParameterName = "@SequenceDistrict";
                pa1.DbType = DbType.String;
                pa1.Value = pKey;
                dbCommand.Parameters.Add(pa1);
                pa1 = DbProviderFactory.CreateParameter();
                pa1.ParameterName = "@SequenceCode";
                pa1.DbType = DbType.Int32;
                pa1.Value = pCode;
                dbCommand.Parameters.Add(pa1);
                int iReturn = dbCommand.ExecuteNonQuery();
                if (iReturn != 1)
                {
                    throw new ApplicationException("error");
                }
            }
使用update语句时,iReturn返回是0,表示没有修改数据,但是使用insert语句时,返回1,表示插入一条记录。另外,把表的字段SequenceCode改成字符型,update的语句却又正常了

解决方案 »

  1.   

    Parameter声明是顺序反啦要按照sql的顺序
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    oledb不支持命名参数,只有按sql语句的顺序添加参数才正确了,你的问题应该是参数错位找不到匹配的记录,自然update不成功了.
      

  3.   

    对是顺序不对,连接sql就不会有这问题