新手求高人解决.NET,修改密码模块问题,

hua2621610 2012-03-25 11:25:31
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class ModPwd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void btn_mod_Click(object sender, EventArgs e)
{
if (CheckPwd() && Page.IsValid)
{
ModPassword();
Response.Redirect("SuccessEdit.aspx");

}
}
public bool CheckPwd()
{
string password=tbx_orignpwd1.Text;
if(password=="")
{
lbl_msg.Visible = true;
lbl_msg.Text = "没有输入原始密码";
return false;
}
else
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();

SqlCommand mycmd = new SqlCommand("UserPwd", myconn);
//设定命令类型为存储过程
mycmd.CommandType = CommandType.StoredProcedure;

//参数
SqlParameter paraUserid = new SqlParameter("@UserID", SqlDbType.Int);
paraUserid.Value = Convert.ToInt32(Session["UserID"].ToString());
mycmd.Parameters.Add(paraUserid);

SqlParameter paraPassword = new SqlParameter("@Password", SqlDbType.NVarChar, 12);
paraPassword.Value = tbx_orignpwd1.Text.Trim();
mycmd.Parameters.Add(paraPassword);

SqlDataReader dr = mycmd.ExecuteReader();

if (dr.Read())
{
myconn.Close();
return true;
}
else
{
lbl_msg.Visible = true;
lbl_msg.Text = "原始密码不正确!";
return false;
}

}
}
public void ModPassword()
{
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接
SqlConnection myconn = new SqlConnection(settings);
//打开数据库连接
myconn.Open();

SqlCommand mycmd = new SqlCommand("ModPwd", myconn);
//设定命令类型为存储过程
mycmd.CommandType = CommandType.StoredProcedure;

//参数
SqlParameter paraUserid = new SqlParameter("@UserID", SqlDbType.Int);
paraUserid.Value = Convert.ToInt32(Session["UserID"].ToString());
mycmd.Parameters.Add(paraUserid);

SqlParameter paraPassword = new SqlParameter("@Password", SqlDbType.NVarChar, 12);
paraPassword.Value = tbx_newpwd1.Text.Trim();
mycmd.Parameters.Add(paraPassword);

mycmd.ExecuteNonQuery();
myconn.Close();
}
protected void btn_back_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
}

一直出现:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 50: //参数
行 51: SqlParameter paraUserid = new SqlParameter("@UserID", SqlDbType.Int);
行 52: paraUserid.Value = Convert.ToInt32(Session["UserID"].ToString());
行 53: mycmd.Parameters.Add(paraUserid);
行 54:

不知道哪里出问题了
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lx66103567 2012-03-25
  • 打赏
  • 举报
回复
Session["UserID"]为空,你最好先判断哈,也可能是session丢失了。。。
xxm30 2012-03-25
  • 打赏
  • 举报
回复
Session["UserID"]为空吧?
最好先判断一下是否有设置

if(Session["UserID"]==null)
{
return;
}
porschev 2012-03-25
  • 打赏
  • 举报
回复
Session["UserID"]是否得到值?
DinoSaur_1985 2012-03-25
  • 打赏
  • 举报
回复
paraUserid.Value = Convert.ToInt32(Session["UserID"].ToString());

把.ToString()去掉。
EnForGrass 2012-03-25
  • 打赏
  • 举报
回复
是的,请判断Session["UserID"]是否为空
if(Session["UserID"]==null)
{
return;
}

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧