做一企业网站时遇到的,前提是:sql server数据层操作完全正确,无任何问题,但是,当我增加了ACCESS数据层时,更新产品无法更新(新闻正常,所以不存在权限问题)
CB_Article.Model.CB_Product model = new CB_Article.Model.CB_Product();
            CB_Article.BLL.CB_Product bll = new CB_Article.BLL.CB_Product();
            model.ArticleID = ArticleID;
            model.Title = Title;
            model.Product_Id = Author;
            model.huiyuan =0;
            model.cid = Convert.ToInt16(BigClassName);
            model.Memo = "";
            model.Itop = Convert.ToInt32(ctop);
            model.Ihot = Convert.ToInt32(chot);
            model.Icomm = Convert.ToInt32(ccomm);
            if (bigPic != string.Empty)
            {
                model.bigpic = bigPic;
            }
            else
            {
                model.bigpic = bpic;            }
            if (SmallPic != string.Empty)
            {
                model.smallpic = SmallPic;
            }
            else
            {
                model.smallpic = spic;            }
            model.Content = Content;
            model.AddDate = DateTime.Now;
            model.grade = Grade;
            model.Elite = Convert.ToInt16(sElite);
            model.JiFen = int.Parse(jifen);
            model.DiyField1_name = DiyField1_name;
            model.DiyField2_name = DiyField2_name;
            model.DiyField1_Content = DiyField1_content;
            model.DiyField2_Content = DiyField2_content;            try
            {
                bll.Update(model);
                Response.Write("<script language=javascript>alert('编辑案例成功!');window.location.href='Admin_Product.aspx';</script>");
            }
            catch
            {
                CB_Article.Web.BaseClass.MessageBox.Show(this, "编辑案例失败!");
            }这是ACCESS的数据层
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(CB_Article.Model.CB_Product model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update CB_Product set ");
strSql.Append("Product_Id=@Product_Id,");
strSql.Append("cid=@cid,");
strSql.Append("Title=@Title,");
strSql.Append("AddDate=@AddDate,");
strSql.Append("Elite=@Elite,");
strSql.Append("Content=@Content,");
strSql.Append("smallpic=@smallpic,");
strSql.Append("bigpic=@bigpic,");
strSql.Append("grade=@grade,");
strSql.Append("shichang=@shichang,");
strSql.Append("huiyuan=@huiyuan,");
strSql.Append("memo=@memo,");
strSql.Append("Ihot=@Ihot,");
strSql.Append("IComm=@IComm,");
strSql.Append("Itop=@Itop,");
strSql.Append("DiyField1_name=@DiyField1_name,");
strSql.Append("DiyField2_name=@DiyField2_name,");
strSql.Append("DiyField1_content=@DiyField1_content,");
strSql.Append("DiyField2_content=@DiyField2_content,");
strSql.Append("Jifen=@Jifen");
strSql.Append(" where ArticleID=@ArticleID");
OleDbParameter[] parameters = {
new OleDbParameter("@ArticleID", OleDbType.Integer,4),
new OleDbParameter("@Product_Id", OleDbType.VarChar,50),
new OleDbParameter("@cid", OleDbType.Integer,4),
new OleDbParameter("@Title", OleDbType.VarChar,150),
new OleDbParameter("@AddDate", OleDbType.Date),
new OleDbParameter("@Elite", OleDbType.Integer,4),
new OleDbParameter("@Content", OleDbType.VarChar,0),
new OleDbParameter("@smallpic", OleDbType.VarChar,250),
new OleDbParameter("@bigpic", OleDbType.VarChar,250),
new OleDbParameter("@grade", OleDbType.Integer,4),
new OleDbParameter("@shichang", OleDbType.Decimal),
new OleDbParameter("@huiyuan", OleDbType.Decimal),
new OleDbParameter("@memo", OleDbType.VarChar,0),
new OleDbParameter("@Ihot", OleDbType.Integer,4),
new OleDbParameter("@IComm", OleDbType.Integer,4),
new OleDbParameter("@Itop", OleDbType.Integer,4),
new OleDbParameter("@DiyField1_name", OleDbType.VarChar,50),
new OleDbParameter("@DiyField2_name", OleDbType.VarChar,50),
new OleDbParameter("@DiyField1_content", OleDbType.VarChar,200),
new OleDbParameter("@DiyField2_content", OleDbType.VarChar,200),
new OleDbParameter("@Jifen", OleDbType.Integer,4)};
parameters[0].Value = model.ArticleID;
parameters[1].Value = model.Product_Id;
parameters[2].Value = model.cid;
parameters[3].Value = model.Title;
parameters[4].Value = model.AddDate;
parameters[5].Value = model.Elite;
parameters[6].Value = model.Content;
parameters[7].Value = model.smallpic;
parameters[8].Value = model.bigpic;
parameters[9].Value = model.grade;
parameters[10].Value = model.shichang;
parameters[11].Value = model.huiyuan;
parameters[12].Value = model.Memo;
parameters[13].Value = model.Ihot;
parameters[14].Value = model.Icomm;
parameters[15].Value = model.Itop;
parameters[16].Value = model.DiyField1_name;
parameters[17].Value = model.DiyField2_name;
parameters[18].Value = model.DiyField1_Content;
parameters[19].Value = model.DiyField2_Content;
parameters[20].Value = model.JiFen; DbHelperOleDb.ExecuteSql(strSql.ToString(),parameters);
}
基本上完全一样,但就是无法更新,哪位可解?

解决方案 »

  1.   

    这是SQL Server的数据层
    /// <summary>
            /// 更新一条数据
            /// </summary>
           public void Update(CB_Article.Model.CB_Product model)
    {
    StringBuilder strSql=new StringBuilder();
    strSql.Append("update CB_Product set ");
    strSql.Append("Product_Id=@Product_Id,");
    strSql.Append("cid=@cid,");
    strSql.Append("Title=@Title,");
    strSql.Append("AddDate=@AddDate,");
    strSql.Append("Elite=@Elite,");
    strSql.Append("Content=@Content,");
    strSql.Append("smallpic=@smallpic,");
    strSql.Append("bigpic=@bigpic,");
    strSql.Append("grade=@grade,");
    strSql.Append("shichang=@shichang,");
    strSql.Append("huiyuan=@huiyuan,");
                strSql.Append("ihot=@ihot,");
                strSql.Append("icomm=@icomm,");
                strSql.Append("itop=@itop,");
                strSql.Append("memo=@memo,");
                strSql.Append("jifen=@jifen,");
                strSql.Append("DiyField1_name=@DiyField1_name,");
                strSql.Append("DiyField2_name=@DiyField2_name,");
                strSql.Append("DiyField1_content=@DiyField1_content,");
                strSql.Append("DiyField2_content=@DiyField2_content");
    strSql.Append(" where ArticleID=@ArticleID ");
    SqlParameter[] parameters = {
    new SqlParameter("@ArticleID", SqlDbType.Int,4),
    new SqlParameter("@Product_Id", SqlDbType.NText),
    new SqlParameter("@cid", SqlDbType.Int,4),
    new SqlParameter("@Title", SqlDbType.NVarChar,150),
    new SqlParameter("@AddDate", SqlDbType.SmallDateTime),
    new SqlParameter("@Elite", SqlDbType.Int,4),
    new SqlParameter("@Content", SqlDbType.NText),
    new SqlParameter("@smallpic", SqlDbType.NVarChar,250),
    new SqlParameter("@bigpic", SqlDbType.NVarChar,250),
    new SqlParameter("@grade", SqlDbType.Int,4),
    new SqlParameter("@shichang", SqlDbType.Money,8),
    new SqlParameter("@huiyuan", SqlDbType.Money,8),
                        new SqlParameter("@ihot", SqlDbType.Int,4),
                        new SqlParameter("@icomm", SqlDbType.Int,4),
                        new SqlParameter("@itop", SqlDbType.Int,4),
                        new SqlParameter("@memo", SqlDbType.NText),
                        new SqlParameter("@jifen", SqlDbType.Int,4),
                        new SqlParameter("@DiyField1_name", SqlDbType.NVarChar,200),
                        new SqlParameter("@DiyField2_name", SqlDbType.NVarChar,200),
                        new SqlParameter("@DiyField1_content", SqlDbType.NVarChar,200),
                        new SqlParameter("@DiyField2_content", SqlDbType.NVarChar,200)};
    parameters[0].Value = model.ArticleID;
    parameters[1].Value = model.Product_Id;
    parameters[2].Value = model.cid;
    parameters[3].Value = model.Title;
    parameters[4].Value = model.AddDate;
    parameters[5].Value = model.Elite;
    parameters[6].Value = model.Content;
    parameters[7].Value = model.smallpic;
    parameters[8].Value = model.bigpic;
    parameters[9].Value = model.grade;
    parameters[10].Value = model.shichang;
    parameters[11].Value = model.huiyuan;
                parameters[12].Value = model.Ihot;
                parameters[13].Value = model.Icomm;
                parameters[14].Value = model.Itop;
                parameters[15].Value = model.Memo;
                parameters[16].Value = model.JiFen;
                parameters[17].Value = model.DiyField1_name;
                parameters[18].Value = model.DiyField2_name;
                parameters[19].Value = model.DiyField1_Content;
                parameters[20].Value = model.DiyField2_Content;
                DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
    }
      

  2.   

    NetWork service 需要设置对access目录的写权限你可以把trycatch去掉看具体错误
      

  3.   

    ACC目录的写权限正常,而且,数据库中有很多表,其它表的操作都OK,就product表出现异常
      

  4.   

    catch(Exception exc)
    {
      CB_Article.Web.BaseClass.MessageBox.Show(this, "编辑案例失败!" + exc.Message + " " + exc.StackTrace); 
    }有异常抛出你都不把它抓住你还怎么查错?
      

  5.   

    new SqlParameter("@Product_Id", SqlDbType.NText), ID 用Ntext 猜测