使用三层体系结构IDAL+DBUTILITY+OLEDBDAL+DALFACTORY+BLL+WEB
OleDbDal中 定义了updateUserPassword(int userid, string newpassword)如下 /// <summary>
/// 修改密码
/// </summary>
/// <param name="userid">用户编号</param>
/// <param name="newpassword">新密码</param>
/// <returns></returns>
public int updateUserPassword(int userid, string newpassword)
{
StringBuilder sb = new StringBuilder();
sb.Append(" update userinfo set [password]=@newpassword where [userid]=@userid");
OleDbParameter[] param =
{
OleDbHelper.GetParameter("@userid", OleDbType.Integer, 4, "[userid]", userid) ,
OleDbHelper.GetParameter("@newpassword",OleDbType.Char,50,"[password]",newpassword)
};
return OleDbHelper.ExecuteSql(sb.ToString(), param);
}调用OleDbHelper类中的
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="Sqlstr">SQL语句</param>
/// <param name="param">参数对象数组</param>
/// <returns></returns>
public static int ExecuteSql(String Sqlstr, OleDbParameter[] param)
{
String ConnStr = OleDbHelper.GetSqlConnection();
using (OleDbConnection conn = new OleDbConnection(ConnStr))
{
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = Sqlstr;
cmd.Parameters.AddRange(param); conn.Open();
try
{
cmd.ExecuteNonQuery(); return 1;
}
catch (System.Data.OleDb.OleDbException ex)
{ return 0;
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}web页实现密码修改按钮点击事件
/// <summary>
/// 修改密码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void updateBt_Click(object sender, EventArgs e)
{
if (user.validUser(user.getUserName(), this.oldpasswordTb.Text.Trim(), 1) == true)
{
if(user.updateUserPassword(user.getUserID(), this.newpasswordTb.Text.Trim())==1)
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('yeal!');</script>");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('旧密码错误!');</script>");
}
}运行弹出"修改"成功,而查看数据库却发现数据没有改变.什么原因呢?所有修改都似乎有这个问题!!!请帮帮我呀!!急呀!!
OleDbDal中 定义了updateUserPassword(int userid, string newpassword)如下 /// <summary>
/// 修改密码
/// </summary>
/// <param name="userid">用户编号</param>
/// <param name="newpassword">新密码</param>
/// <returns></returns>
public int updateUserPassword(int userid, string newpassword)
{
StringBuilder sb = new StringBuilder();
sb.Append(" update userinfo set [password]=@newpassword where [userid]=@userid");
OleDbParameter[] param =
{
OleDbHelper.GetParameter("@userid", OleDbType.Integer, 4, "[userid]", userid) ,
OleDbHelper.GetParameter("@newpassword",OleDbType.Char,50,"[password]",newpassword)
};
return OleDbHelper.ExecuteSql(sb.ToString(), param);
}调用OleDbHelper类中的
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="Sqlstr">SQL语句</param>
/// <param name="param">参数对象数组</param>
/// <returns></returns>
public static int ExecuteSql(String Sqlstr, OleDbParameter[] param)
{
String ConnStr = OleDbHelper.GetSqlConnection();
using (OleDbConnection conn = new OleDbConnection(ConnStr))
{
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = Sqlstr;
cmd.Parameters.AddRange(param); conn.Open();
try
{
cmd.ExecuteNonQuery(); return 1;
}
catch (System.Data.OleDb.OleDbException ex)
{ return 0;
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}web页实现密码修改按钮点击事件
/// <summary>
/// 修改密码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void updateBt_Click(object sender, EventArgs e)
{
if (user.validUser(user.getUserName(), this.oldpasswordTb.Text.Trim(), 1) == true)
{
if(user.updateUserPassword(user.getUserID(), this.newpasswordTb.Text.Trim())==1)
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('yeal!');</script>");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('旧密码错误!');</script>");
}
}运行弹出"修改"成功,而查看数据库却发现数据没有改变.什么原因呢?所有修改都似乎有这个问题!!!请帮帮我呀!!急呀!!
解决方案 »
- XDocument 取值
- c# fastreoprt数据绑定问题 急
- 初学C#的一个小问题
- 线程求助
- c#打印控件PrintDocument设置成自定义大小的纸张后,打印出来的字体变瘦长了
- textbox赋值 datagridview
- 请教关于RadioButtonList中的Selected的问题,附简单源码
- 如何做到Form1的TextBox1获得Form2的TextBox1中的值
- 属性里的RURERN和方法里的RUTERN有什么区别。
- wrox的《C#高级编程》对初学者适合吗?读者有C++经验。
- 【讨论】反射原理悟不透,大家指点下
- 如何在C#应用程序中调用SQL Server 2005创建的存储过程
OleDbHelper.GetParameter("@newpassword",OleDbType.Char,50,"[password]",newpassword)
换一下参数顺序试试。
shelless,谢谢你啊!!!我都郁闷一天多了~~~但是能告诉我为什么吗?初学呢
shelless,谢谢你啊!!!我都郁闷一天多了~~~但是能告诉我为什么吗?初学呢