做了个修改密码的页面,可是代码写好了,也没有语法问题,但就是更新不了数据库!郁闷···
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;public partial class Admin_Xgpassword : System.Web.UI.Page
{
OleDbConnection conn;
OleDbCommand cmm;
protected void Page_Load(object sender, EventArgs e)
{ if (Session["login"] != "ok")
Response.Redirect("../login.aspx");//通过session验证用户是否合法
if (Session["qx"].ToString() != "2" && Session["qx"].ToString() != "3")
Response.Redirect("Wq.aspx");
conn = new OleDbConnection(System.Configuration
.ConfigurationManager.ConnectionStrings["Accessconn"].ConnectionString);//数据库连接字符串
conn.Open();//打开连接 } protected void ChangePasswordPushButton_Click(object sender, EventArgs e)
{
if (Page.IsValid)//此控件的作用是此空间{}内的代码在page_load后发生,即session验证用户通过后发生,确保先验证用户合法性才能修改密码
{
string str = "SELECT * FROM [us] WHERE [username]='" + Session["username"].ToString() + "'";//查询出当前用户的密码
cmm = new OleDbCommand(str, conn);
OleDbDataReader reader;
reader = cmm.ExecuteReader();//把查询结果传递给OledbDataReader
if (reader.Read())//如果当前OledbDataReader中有查询打数据的话,就进入循环
{
if (reader["password"].ToString() == CurrentPassword.Text.ToString())//把查询到的用户密码和用户输入的密码对比
{
if (NewPassword.Text == "" || NewPassword.Text == null)//如果新密码为空的话
Label1.Text = "不能改成空密码!";//提升
else//如果上面都满足,即没有异常
{
if (NewPassword.Text != NewPassword1.Text)//再验证用户输入的两次新密码是否一致
Label1.Text = "新密码与重复新密码不一致!";//提示
else//如果上面都满足,即没有异常
{
try
{
OleDbCommand comm = new OleDbCommand("UPDATE [us] SET [password]=@password WHERE [username]=@username", conn);//用Command来更新密码
comm.Parameters.Add("@password", OleDbType.LongVarChar);//定义参数
comm.Parameters.Add("@username", OleDbType.LongVarChar);
comm.Parameters["@password"].Value = NewPassword.Text;//给参数赋值
comm.Parameters["@username"].Value = Session["username"].ToString();
comm.ExecuteNonQuery();//执行更新
Response.Write("<script>alert(\"恭喜更改密码成功!\")</script>");
Session.Remove("login");//注销登录
Session.Remove("username");//注销用户
reader.Close();
}
catch { Response.Write("<script>alert(\"很遗憾更改密码失败!\")</script>"); }//如果更新不成功,提示
}
}
}
else
{
Label1.Text = "原密码错误!";//用户输入的原密码错误
}
}
else { Label1.Text = "非法用户!"; }//如果查询不到数据的话···
}
}
}
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;public partial class Admin_Xgpassword : System.Web.UI.Page
{
OleDbConnection conn;
OleDbCommand cmm;
protected void Page_Load(object sender, EventArgs e)
{ if (Session["login"] != "ok")
Response.Redirect("../login.aspx");//通过session验证用户是否合法
if (Session["qx"].ToString() != "2" && Session["qx"].ToString() != "3")
Response.Redirect("Wq.aspx");
conn = new OleDbConnection(System.Configuration
.ConfigurationManager.ConnectionStrings["Accessconn"].ConnectionString);//数据库连接字符串
conn.Open();//打开连接 } protected void ChangePasswordPushButton_Click(object sender, EventArgs e)
{
if (Page.IsValid)//此控件的作用是此空间{}内的代码在page_load后发生,即session验证用户通过后发生,确保先验证用户合法性才能修改密码
{
string str = "SELECT * FROM [us] WHERE [username]='" + Session["username"].ToString() + "'";//查询出当前用户的密码
cmm = new OleDbCommand(str, conn);
OleDbDataReader reader;
reader = cmm.ExecuteReader();//把查询结果传递给OledbDataReader
if (reader.Read())//如果当前OledbDataReader中有查询打数据的话,就进入循环
{
if (reader["password"].ToString() == CurrentPassword.Text.ToString())//把查询到的用户密码和用户输入的密码对比
{
if (NewPassword.Text == "" || NewPassword.Text == null)//如果新密码为空的话
Label1.Text = "不能改成空密码!";//提升
else//如果上面都满足,即没有异常
{
if (NewPassword.Text != NewPassword1.Text)//再验证用户输入的两次新密码是否一致
Label1.Text = "新密码与重复新密码不一致!";//提示
else//如果上面都满足,即没有异常
{
try
{
OleDbCommand comm = new OleDbCommand("UPDATE [us] SET [password]=@password WHERE [username]=@username", conn);//用Command来更新密码
comm.Parameters.Add("@password", OleDbType.LongVarChar);//定义参数
comm.Parameters.Add("@username", OleDbType.LongVarChar);
comm.Parameters["@password"].Value = NewPassword.Text;//给参数赋值
comm.Parameters["@username"].Value = Session["username"].ToString();
comm.ExecuteNonQuery();//执行更新
Response.Write("<script>alert(\"恭喜更改密码成功!\")</script>");
Session.Remove("login");//注销登录
Session.Remove("username");//注销用户
reader.Close();
}
catch { Response.Write("<script>alert(\"很遗憾更改密码失败!\")</script>"); }//如果更新不成功,提示
}
}
}
else
{
Label1.Text = "原密码错误!";//用户输入的原密码错误
}
}
else { Label1.Text = "非法用户!"; }//如果查询不到数据的话···
}
}
}
解决方案 »
- 浇水者勿扰
- 正则 lxcnn
- asp与asp.net区别在哪里?
- ●●●●●●●●做datagrid嵌套,里面的datagrid控件属性只显示属性,不显示事件是怎么回事啊?_
- 在GridView加入全选按钮后,出现了下面的代码,怎么解决呢?
- web form程序,也就是所谓的asp.net程序,如何让web窗体拒绝“回车”?
- 关于Dundas Chart生成图像的ImageUrl的问题
- 100分请思归大侠回答关于XML的同时读写问题!
- 如何根据一个网页对话框的返回值,改变WebForm上某一控件的值或属性
- 在aspx页面中为和中文名称的图片无法显示?
- DWZ树形控件的值存JSON 如何在后台获取?
- w3wp.exe [7612]中发生未处理的win32异常
眼花了···代码在下面:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;public partial class EcardAdmin_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(System.Configuration.ConfigurationManager
.ConnectionStrings["YktConn"].ConnectionString))
{ if (TextBox1.Text == "" || TextBox2.Text == "" || TextBox3.Text == "" || TextBox4.Text == "")
Label3.Text = "信息不完整!<br>请检查是否有项目没有填写内容。";
else if (TextBox3.Text != TextBox4.Text)
{
Label3.Text = "密码与确认密码不一致,请重新输入。";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
}
else
{
OleDbCommand cmm2 = new OleDbCommand();
cmm2.Connection = conn;
conn.Open();
cmm2.CommandText = "SELECT * FROM [us] WHERE [username]='" + TextBox1.Text
+ "' AND [password]='" + TextBox2.Text + "'";
OleDbDataReader reader = cmm2.ExecuteReader();
if (reader.Read())
{
try
{
OleDbCommand cmm = new OleDbCommand();
cmm.Connection = conn;
cmm.CommandText = "UPDATE [us] SET [password]=@password WHERE [username]=@username";
cmm.Parameters.Add("@username", OleDbType.LongVarChar);
cmm.Parameters.Add("@password", OleDbType.LongVarChar);
cmm.Parameters["@username"].Value = TextBox1.Text;
cmm.Parameters["@password"].Value = TextBox3.Text;
cmm.ExecuteNonQuery();
Response.Write("<script>alert(\"恭喜修改密码成功!\")</script>");
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
reader.Close();
}
catch
{
Response.Write("<script>alert(\"修改密码失败。\")</script>");
reader.Close();
}
}
else
{
Label3.Text = "原账号不存在或密码错误!";
reader.Close();
}
}
}
}
}
+ "' AND [password]='" + TextBox2.Text + "'";
----------------------------------------------------------------
cmm.Parameters["@password"].Value = TextBox3.Text;
--------------------
这两段楼主到底用的哪个字段保存的密码?textbox2,textbox3 ?
textbox3 应该是新密码你这里cmm.ExecuteNonQuery(); 更新语句传进去了么?