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); } 红色部分报错,除非不初始化
string[] uopp = null这句报错?不会吧,貌似没可能哦。
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
{
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);
}
红色部分报错,除非不初始化
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