我做了一个修改用户资料的页面, 里面是给用户修改个人信息的. 我全都用了textbox.在pageload的时候.用sqldataread把全部数据库内容放到了每个textbox中,
.但是问题也出在了这里.我之后在修改textbox里的text..怎么提交..内容都是原来的...
我发现似乎不该把取数据放在pageload里..但是我不知道该怎么做好..初学asp.net.
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.SqlClient;
using System.Data.Sql;public partial class UserInfoChange : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (Session["NAME_user"] == null || Session["ROLE_user"] == null)
{
Response.Redirect("~/UserLogin.aspx");
}
else
{
this.Label3.Text = Convert.ToString(Session["NAME_user"]);
}
}
string strCon = "Data Source=(local);Database=Meet;Integrated Security=SSPI";
SqlConnection sqlcon = new SqlConnection(strCon);
string sql = "select * from [user] where NAME_user='" + this.Label3.Text + "'";
SqlCommand cmd = new SqlCommand(sql, sqlcon);
sqlcon.Open();
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
this.MMTextBox.Text = sdr["CODE_user"].ToString();
this.XBTextBox.Text = sdr["SEX_user"].ToString();
this.XMTextBox.Text = sdr["RealName_user"].ToString();
this.SRTextBox.Text = sdr["BIRTH_user"].ToString();
this.UXTextBox.Text = sdr["EMAIL_user"].ToString();
this.GSTextBox.Text = sdr["COMPANY_user"].ToString();
}
sqlcon.Close();
} protected void Button1_Click(object sender, EventArgs e)
{
if (XMMTextBox.Text != "")
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=Meet;Integrated Security=SSPI";
sqlcon = new SqlConnection(strCon);
string sqlstr = "update [user] set CODE_user='" + this.XMMTextBox.Text.ToString().Trim() +
"',SEX_user='" + this.XBTextBox.Text.ToString().Trim() +
"',RealName_user='" + this.XMTextBox.Text.ToString().Trim() +
"',BIRTH_user='" + this.SRTextBox.Text.ToString().Trim() +
"',EMAIL_user='" + this.UXTextBox.Text.ToString().Trim() +
"',COMPANY_user='" + this.GSTextBox.Text.ToString().Trim() + "' where NAME_user='" + this.Label3.Text + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
Response.Write("<script>alert('修改成功!请重新登录');</script>");
Response.Write("<script language=javascript>window.parent.location.href='UserLogin.aspx'</script>");
}
else
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=Meet;Integrated Security=SSPI";
sqlcon = new SqlConnection(strCon);
string sqlstr = "update [user] set CODE_user='" + this.MMTextBox.Text.ToString().Trim() +
"',SEX_user='" + this.XBTextBox.Text.ToString().Trim() +
"',RealName_user='" + this.XMTextBox.Text.ToString().Trim() +
"',BIRTH_user='" + this.SRTextBox.Text.ToString().Trim() +
"',EMAIL_user='" + this.UXTextBox.Text.ToString().Trim() +
"',COMPANY_user='" + this.GSTextBox.Text.ToString().Trim() + "' where NAME_user='" + this.Label3.Text + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
Response.Write("<script>alert('修改成功!');</script>");
}
}
}
这是后台代码..
.但是问题也出在了这里.我之后在修改textbox里的text..怎么提交..内容都是原来的...
我发现似乎不该把取数据放在pageload里..但是我不知道该怎么做好..初学asp.net.
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.SqlClient;
using System.Data.Sql;public partial class UserInfoChange : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (Session["NAME_user"] == null || Session["ROLE_user"] == null)
{
Response.Redirect("~/UserLogin.aspx");
}
else
{
this.Label3.Text = Convert.ToString(Session["NAME_user"]);
}
}
string strCon = "Data Source=(local);Database=Meet;Integrated Security=SSPI";
SqlConnection sqlcon = new SqlConnection(strCon);
string sql = "select * from [user] where NAME_user='" + this.Label3.Text + "'";
SqlCommand cmd = new SqlCommand(sql, sqlcon);
sqlcon.Open();
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
this.MMTextBox.Text = sdr["CODE_user"].ToString();
this.XBTextBox.Text = sdr["SEX_user"].ToString();
this.XMTextBox.Text = sdr["RealName_user"].ToString();
this.SRTextBox.Text = sdr["BIRTH_user"].ToString();
this.UXTextBox.Text = sdr["EMAIL_user"].ToString();
this.GSTextBox.Text = sdr["COMPANY_user"].ToString();
}
sqlcon.Close();
} protected void Button1_Click(object sender, EventArgs e)
{
if (XMMTextBox.Text != "")
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=Meet;Integrated Security=SSPI";
sqlcon = new SqlConnection(strCon);
string sqlstr = "update [user] set CODE_user='" + this.XMMTextBox.Text.ToString().Trim() +
"',SEX_user='" + this.XBTextBox.Text.ToString().Trim() +
"',RealName_user='" + this.XMTextBox.Text.ToString().Trim() +
"',BIRTH_user='" + this.SRTextBox.Text.ToString().Trim() +
"',EMAIL_user='" + this.UXTextBox.Text.ToString().Trim() +
"',COMPANY_user='" + this.GSTextBox.Text.ToString().Trim() + "' where NAME_user='" + this.Label3.Text + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
Response.Write("<script>alert('修改成功!请重新登录');</script>");
Response.Write("<script language=javascript>window.parent.location.href='UserLogin.aspx'</script>");
}
else
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=Meet;Integrated Security=SSPI";
sqlcon = new SqlConnection(strCon);
string sqlstr = "update [user] set CODE_user='" + this.MMTextBox.Text.ToString().Trim() +
"',SEX_user='" + this.XBTextBox.Text.ToString().Trim() +
"',RealName_user='" + this.XMTextBox.Text.ToString().Trim() +
"',BIRTH_user='" + this.SRTextBox.Text.ToString().Trim() +
"',EMAIL_user='" + this.UXTextBox.Text.ToString().Trim() +
"',COMPANY_user='" + this.GSTextBox.Text.ToString().Trim() + "' where NAME_user='" + this.Label3.Text + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
Response.Write("<script>alert('修改成功!');</script>");
}
}
}
这是后台代码..
{
//读取。
}click button发生的时候,会先调用Page_load,再调用 Button1_Click。这叫做postback.
因此要在Page_load里判断是不是Postback,如果是就不要从数据库里读取了。
中处理。然后更新数据才能把画面数据更新到后台。