超级菜鸟问题,快来抢分!!

inseasoft 2005-03-21 04:25:56
刚学。net愚笨勿笑!

有个webform上面有几个textbox控件,在load事件中从数据库中读取了数据放到textbox中,没有用绑定直接赋值。发现当我在页面上修改了textbox的内容后,在按保存按钮时改textbox控件的值还是初始值并没有改变。何解???

付代码
private void Page_Load(object sender, System.EventArgs e)//初始
{
string sSQL = "select * from usertable where user_ID= '"+user_ID+"' order by user_ID";
SqlDataReader dr = DBTmp.GetDataList(sSQL);
if (dr.HasRows)
{
dr.Read();
TbID.Text = dr["user_ID"].ToString();
Tbname.Text = dr["username"].ToString();
TbPassowrd.Text = dr["password"].ToString();
rPassword.Text = dr["password"].ToString();
if (dr["usertype"].ToString()=="一般用户")
{
DLusertype.SelectedIndex=1;
}

if (dr["sflag"].ToString()=="False")
DLsflag.SelectedIndex=1;

Iuser_id.Value = user_ID ;

}
dr.Close();
DBTmp.Conn.Close();

}

//保存值
private void BtSave_Click(object sender, System.EventArgs e)
{
if (TbPassowrd.Text==rPassword.Text)
{

string sSQL="";
string msg;
if (Istutas.Value =="1") //修改
{
//此处Tbname.Text的值无论怎么改都是原赋值内容!!
sSQL = "update usertable set user_ID='"+TbID.Text+"',username='"+Tbname.Text
+"',password='"+TbPassowrd.Text+"' ,usertype='"+DLusertype.SelectedValue
+"',sflag="+DLsflag.SelectedValue+" where user_ID='"+Iuser_id.Value+"'" ;
msg ="修改成功!";
}
else
{
sSQL= "insert into usertable (user_ID,username,password,usertype,sflag) values ('"+TbID.Text
+"','"+Tbname.Text+"','"+TbPassowrd.Text+"','"+DLusertype.SelectedValue+"',"+DLsflag.SelectedValue+")";
msg ="新增完成!";
}


DBTmp.ExecuteSql(sSQL);
TbID.Text = "";
Tbname.Text = "";
TbPassowrd.Text ="";
rPassword.Text = "";

Response.Write("<script language=javascript>self.parent.location.href='userManager.aspx';alert('"+msg+"')</script>");

//Response.Redirect("LeftMess.aspx?Msg="+msg);
}
else
{
Lbmsg.Text = "对不起,两次输入的密码不一致!";
}

}
...全文
93 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyug 2005-03-21
  • 打赏
  • 举报
回复
呵呵,我以前也常犯这种错误的
inseasoft 2005-03-21
  • 打赏
  • 举报
回复
谢谢各位,见笑了
inseasoft 2005-03-21
  • 打赏
  • 举报
回复
谢谢各位,见笑了
inseasoft 2005-03-21
  • 打赏
  • 举报
回复
谢谢!
rachy 2005-03-21
  • 打赏
  • 举报
回复
if(!IsPostBack)
{
//你以前在Page_Load中的代码
}

因为当页面提交继续执行代码的时候,又重新执行了你写在pageload中的代码
因此你所作的操作相当于没做。
而加上上面的判断条件,提交页面的时候不会执行里面的代码
yezie 2005-03-21
  • 打赏
  • 举报
回复
把page_load中
统统放到
if(!IsPostBack)
{

}

嘿嘿
comefeel 2005-03-21
  • 打赏
  • 举报
回复
up先
zyug 2005-03-21
  • 打赏
  • 举报
回复
把page_load中
统统用
if(!IsPostBack)
{
//你以前在Page_Load中的代码
}

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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