这个变量只是字符串,如果换成成员变量就没有问题,而且错误只是有时候会出现到底是什么意思?
不赋值的 话,没问题
一赋值就错误

解决方案 »

  1.   

    public static void UpdateUser(Model u)
                {
                    string sql = "update Users set ";
                    OleDbParameter[] op = null;
                    string[] uopp = null;
                    bool Batch = false;
                    if (u.ID.IndexOf(',') == -1)
                    {
                        Batch = false;
                        op = new OleDbParameter[13];
                    }
                    else
                    {
                        Batch = true;
                        uopp = u.ID.Split(',');
                        op = new OleDbParameter[13 + uopp.Length - 1];
                    }
                    OleDbParameter AnswerOp = null;
                    if (u.Answer != "" && u.Answer != null)
                    {
                        sql += "Answer=@Answer,";
                        AnswerOp = new OleDbParameter("@Answer", OleDbType.VarChar);
                        AnswerOp.Value = u.Answer;
                    }
                    op[0] = AnswerOp;
                    OleDbParameter QuestionOp = null;
                    if (u.Question != "" && u.Question != null)
                    {
                        sql += "Question=@Question,";
                        QuestionOp = new OleDbParameter("@Question", OleDbType.VarChar);
                        QuestionOp.Value = u.Question;
                    }
                    op[1] = QuestionOp;
                    OleDbParameter RegisteOp = null;
                    if (u.Registe != null)
                    {
                        sql += "Registe=@Registe,";
                        RegisteOp = new OleDbParameter("@Registe", OleDbType.Date);
                        RegisteOp.Value = u.Registe;
                    }
                    op[2] = RegisteOp;
                    OleDbParameter UserNameOp = null;
                    if (u.UserName != "" && u.UserName != null)
                    {
                        sql += "UserName=@UserName,";
                        UserNameOp = new OleDbParameter("@UserName", OleDbType.VarChar);
                        UserNameOp.Value = u.UserName;
                    }
                    op[3] = UserNameOp;
                    OleDbParameter PassWordOp = null;
                    if (u.PassWord != "" && u.PassWord != null)
                    {
                        sql += "[PassWord]=@PassWord,";
                        PassWordOp = new OleDbParameter("@PassWord", OleDbType.VarChar);
                        PassWordOp.Value = u.PassWord;
                    }
                    op[4] = PassWordOp;
                    OleDbParameter LastLoginOp = null;
                    if (u.LastLogin != null)
                    {
                        sql += "LastLogin=@LastLogin,";
                        LastLoginOp = new OleDbParameter("@LastLogin", OleDbType.Date);
                        LastLoginOp.Value = u.LastLogin;
                    }
                    op[5] = LastLoginOp;
                    OleDbParameter IntegralOp = null;
                    if (u.Integral != null)
                    {
                        sql += "Integral=@Integral,";
                        IntegralOp = new OleDbParameter("@Integral", OleDbType.Integer);
                        IntegralOp.Value = u.Integral;
                    }
                    op[6] = IntegralOp;
                    OleDbParameter GroupOp = null;
                    if (u.Group != 0)
                    {
                        sql += "[Group]=@Group,";
                        GroupOp = new OleDbParameter("@Group", OleDbType.Integer);
                        GroupOp.Value = u.Group;
                    }
                    op[7] = GroupOp;
                    OleDbParameter EmailOp = null;
                    if (u.Email != null && u.Email != "")
                    {
                        sql += "[Email]=@Email,";
                        EmailOp = new OleDbParameter("@Email", OleDbType.VarChar);
                        EmailOp.Value = u.Email;
                    }
                    op[8] = EmailOp;
                    OleDbParameter EmailOkOp = null;
                    if (u.EmailOk != 0)
                    {
                        sql += "EmailOk=@EmailOk,";
                        EmailOkOp = new OleDbParameter("@EmailOk", OleDbType.Integer);
                        EmailOkOp.Value = u.EmailOk;
                    }
                    op[9] = EmailOkOp;
                    OleDbParameter AvatarOp = null;
                    if (u.Avatar != null && u.Avatar != "")
                    {
                        sql += "Avatar=@Avatar,";
                        AvatarOp = new OleDbParameter("@Avatar", OleDbType.VarChar);
                        AvatarOp.Value = u.Avatar;
                    }
                    op[10] = AvatarOp;
                    OleDbParameter SignatureOp = null;
                    if (u.Signature != null)
                    {
                        sql += "Signature=@Signature,";
                        SignatureOp = new OleDbParameter("@Signature", OleDbType.VarChar);
                        SignatureOp.Value = u.Signature;
                    }
                    op[11] = SignatureOp;
                    sql = sql.Substring(0, sql.Length - 1);
                    if (Batch)
                    {
                        sql += " where ID in (";
                        for (int i = 12; i < op.Length; i++)
                        {
                            sql += "@ID" + i.ToString() + ",";
                            op[i] = new OleDbParameter("@ID" + i.ToString(), OleDbType.Integer);
                            op[i].Value = uopp[i - 12];
                        }
                        sql = sql.Substring(0, sql.Length - 1);
                        sql += ")";                }
                    else
                    {
                        sql += " where ID in (@ID)";
                        op[12] = new OleDbParameter("@ID", OleDbType.VarChar);
                        op[12].Value = u.ID;
                    }
                    DB.ExecuteUpdate(sql, op);
                    if (u.UserName != "" && u.UserName != null)
                    {
                        updateUserNameAddionOperation(u);
                    }
                    //if (u.PassWord == "" && u.PassWord == null)
                    //{
                    //    sql = "update Users set Question=@Question,[Group]=@Group,LastLogin=@LastLogin,Answer=@Answer,[Email]=@Email,EmailOk=@EmailOk where ID=@ID";
                    //    op = new OleDbParameter[7];
                    //    op[0] = new OleDbParameter("@Question", OleDbType.VarChar);
                    //    op[0].Value = u.Question;
                    //    op[1] = new OleDbParameter("@Group", OleDbType.Integer);
                    //    op[1].Value = u.Group;
                    //    op[2] = new OleDbParameter("@LastLogin", OleDbType.Date);
                    //    op[2].Value = System.DateTime.Now;
                    //    op[6] = new OleDbParameter("@ID", OleDbType.Integer);
                    //    op[6].Value = u.ID;
                    //    op[3] = new OleDbParameter("@Answer", OleDbType.VarChar);
                    //    op[3].Value = u.Answer;
                    //    op[4] = new OleDbParameter("@Email", OleDbType.VarChar);
                    //    op[4].Value = u.Email;
                    //    op[5] = new OleDbParameter("@EmailOk", OleDbType.Integer);
                    //    op[5].Value = u.EmailOk;
                    //}
                    //else
                    //{                //    sql = "update Users set Question=@Question, [Group]=@Group,LastLogin=@LastLogin,Answer=@Answer,[Email]=@Email,EmailOk=@EmailOk,[PassWord]=@PassWord where ID=@ID";
                    //    op = new OleDbParameter[8];
                    //    op[0] = new OleDbParameter("@Question", OleDbType.VarChar);
                    //    op[0].Value = u.Question;
                    //    op[1] = new OleDbParameter("@Group", OleDbType.Integer);
                    //    op[1].Value = u.Group;
                    //    op[2] = new OleDbParameter("@LastLogin", OleDbType.Date);
                    //    op[2].Value = System.DateTime.Now;
                    //    op[7] = new OleDbParameter("@ID", OleDbType.Integer);
                    //    op[7].Value = u.ID;
                    //    op[3] = new OleDbParameter("@Answer", OleDbType.VarChar);
                    //    op[3].Value = u.Answer;
                    //    op[4] = new OleDbParameter("@Email", OleDbType.VarChar);
                    //    op[4].Value = u.Email;
                    //    op[5] = new OleDbParameter("@EmailOk", OleDbType.Integer);
                    //    op[5].Value = u.EmailOk;
                    //    op[6] = new OleDbParameter("@PassWord", OleDbType.VarChar);
                    //    op[6].Value = u.PassWord;
                    //}
                    DB.ExecuteUpdate(sql, op);
                }
    红色部分报错,除非不初始化
      

  2.   

    string[] uopp = null这句报错?不会吧,貌似没可能哦。
      

  3.   

    Server Error in '/bbs' Application.
    Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.Source Error:An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.Stack Trace:[NullReferenceException: Object reference not set to an instance of an object.]
       xinchen.Models.Sevrice.UpdateUser(Model u) in F:\newbbs\xinchen.Models\xinchen.Models.cs:774
       xinchen.BBS.admin.Handler.User.ProcessRequest(HttpContext context) in F:\newbbs\xinchen.BBS\BBS\admin\Handler\User.ashx.cs:89
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 
      

  4.   

    改成string[] uopp=new string[0];看看会报什么错。
      

  5.   

    这个报的错不精确的..sql=“” 这句话不会报错的  一进这个方法就初始化sql了