昨天调试一天了//用户修改
public partial class UserInfo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
User user = new User(Session["UserName"].ToString());
NickName.Text = user.nickName;
Password.Value = user.password;
Question.Value = user.question;
Answer.Text = user.answer;
}
}protected void EditInfo_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{User user = new User();
string strMd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Value, "md5");
bool Result =user.EditInfo(UserName.Value, NickName.Text, strMd5, Question.Value, Answer.Text);
if (Result == true)
{
Response.Write("<script language=\"javascript\">alert('恭喜您,修改成功!');window.open('Default.aspx','_top')</script>");
Response.End();
}
}
}
}
//数据库更新类
namespace BBS.User
{
public class User
{
private string UserName;
private string NickName;
private string Password;
private string Question;
private string Answer;
。。
///显示用户信息
public User(string UserName)....///修改用户信息
public bool EditInfo(string UserName,string NickName, string Password, string Question, string Answer)
{string sql = "User_EditInfo";
DataBase db = new DataBase();
SqlConnection conn = db.ReturnConn();
SqlCommand cmd = db.CreateCmd(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@NickName", NickName);
cmd.Parameters.AddWithValue("@Password", Password);
cmd.Parameters.AddWithValue("@Question", Question);
cmd.Parameters.AddWithValue("@Answer", Answer);
cmd.Parameters.AddWithValue("@Sex", Sex);
cmd.Parameters.AddWithValue("@UserHead", UserHead);
cmd.Parameters.AddWithValue("@Birthday", Birthday);
cmd.Parameters.AddWithValue("@Hobby", Hobby);
cmd.Parameters.AddWithValue("@UserSign", UserSign);try
{
cmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
LogWrite.WriteLog(ex.ToString());
return false;
}
finally
{
db.Dispose(conn);
}}
数据库连接另外定义的,别的注册、添加等功能都实现了,就只有用户信息不更新,希望大家帮忙解决一下
public partial class UserInfo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
User user = new User(Session["UserName"].ToString());
NickName.Text = user.nickName;
Password.Value = user.password;
Question.Value = user.question;
Answer.Text = user.answer;
}
}protected void EditInfo_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{User user = new User();
string strMd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Value, "md5");
bool Result =user.EditInfo(UserName.Value, NickName.Text, strMd5, Question.Value, Answer.Text);
if (Result == true)
{
Response.Write("<script language=\"javascript\">alert('恭喜您,修改成功!');window.open('Default.aspx','_top')</script>");
Response.End();
}
}
}
}
//数据库更新类
namespace BBS.User
{
public class User
{
private string UserName;
private string NickName;
private string Password;
private string Question;
private string Answer;
。。
///显示用户信息
public User(string UserName)....///修改用户信息
public bool EditInfo(string UserName,string NickName, string Password, string Question, string Answer)
{string sql = "User_EditInfo";
DataBase db = new DataBase();
SqlConnection conn = db.ReturnConn();
SqlCommand cmd = db.CreateCmd(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@NickName", NickName);
cmd.Parameters.AddWithValue("@Password", Password);
cmd.Parameters.AddWithValue("@Question", Question);
cmd.Parameters.AddWithValue("@Answer", Answer);
cmd.Parameters.AddWithValue("@Sex", Sex);
cmd.Parameters.AddWithValue("@UserHead", UserHead);
cmd.Parameters.AddWithValue("@Birthday", Birthday);
cmd.Parameters.AddWithValue("@Hobby", Hobby);
cmd.Parameters.AddWithValue("@UserSign", UserSign);try
{
cmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
LogWrite.WriteLog(ex.ToString());
return false;
}
finally
{
db.Dispose(conn);
}}
数据库连接另外定义的,别的注册、添加等功能都实现了,就只有用户信息不更新,希望大家帮忙解决一下
解决方案 »
- C#操作word我远程连接到服务器的时候是可以的但是。。。。。
- 帮忙看看一个LinQ的简单问题!
- 求用c#windos form 编的计算器程序文件
- httprequest模拟页面等待
- 怎样生命动态数组对象?
- 智能客户端(SmartClient)之问题二----怎样设置才能下载类庫文件dll到客户端的assembly文件夹下?
- 在WEB里为什么提示:DataBindings无效?
- .net中com对象如何从object转化为可操作的对象??
- 如何把一个窗口带到前台来,但是不给它焦点?
- 一个DataTable 与 一个DaraRowCollection 怎么合并?
- 请教关于C#正规替换的一个问题
- Match m in re.Matches(text)被卡住,无法退出
还有你是直接通过ADO.NET操作数据库的吗?
还是用的其它的持久化层的框架。
User_EditInfo是存储过程,昨天一个同学帮忙查了一下,但是没改对,我们都是新手……麻烦大家帮忙解决一下吧
加了断点,然后正常执行了
查看是否i >=1 ,如果不是,说明sql语句条件不正确,导致update没有更新到资料.具体哪里不正确,你调试一下就应该知道的.
sql语句没有错,我是根据用户名定位的,if (Page.IsValid)
{User user = new User();
string strMd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Value, "md5");
bool Result =user.EditInfo(UserName.Value, NickName.Text, strMd5, Question.Value, Answer.Text);
是不是因为红色部分没有定位UserName?
1、先直接在数据库里测试存储过程,看存储过程是否正确
2、把下列编码中的变量UserName、NickName等变成定值'dfd'一定要确保数据类型正确,然后运行看看能不能更新
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@NickName", NickName);
3、如果到2都没问题,就是数据类型出错了