初次在web应用程序中实现修改功能注意事项

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace WebApplication1
{
public partial class WebForm3 : System.Web.UI.Page
{

string connectiongStrings = ConfigurationManager.ConnectionStrings["testDB"].ConnectionString;
stuInfo stu = null;
protected void Page_Load(object sender, EventArgs e)
{

int id=Convert.ToInt32( Request.QueryString["id"].ToString());
// Response.Write(id);

string sql = "select * from TblUser where intid=@id";
SqlParameter p = new SqlParameter("@id",SqlDbType.Int);
p.Value = id;
// DataSet ds = SqlHelper.ExecuteDataset(connectiongStrings, CommandType.Text, sql);
SqlDataReader reader= SqlHelper.ExecuteReader(connectiongStrings, CommandType.Text, sql, p);
if (reader.Read())
{
stu = new stuInfo();
stu.IntId = (int)reader[0];
stu.Name = reader[1].ToString();
stu.Number = reader[2].ToString();
stu.Birthday =Convert.ToDateTime( reader[3]);
stu.Sex = (int)reader[4];
stu.Address = reader[5].ToString(); 
}
if (!IsPostBack)
{
this.txtName.Text = stu.Name.ToString();
this.txtNumber.Text = stu.Number.ToString();
this.txtBirthday.Text = stu.Birthday.ToShortDateString();
if (stu.Sex.ToString() == "0")
{
this.radNan.Checked = true;
}
else
{
this.radNv.Checked = true;
}
this.txtAddress.Text = stu.Address.ToString();
}
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(stu.IntId.ToString());
SqlConnection con = new SqlConnection(connectiongStrings);
string sql = "update TblUser set chvName=@name,chavNumber=@number,dtmBirthday=@birthday,intGender=@sex,chvAddress=@address where intid=@id";
SqlParameter p1 = new SqlParameter("@id", SqlDbType.Int);
p1.Value = stu.IntId;
SqlParameter p = new SqlParameter("@sex", SqlDbType.Int);
if (this.radNan.Checked)
{
p.Value = 0;
}
else
{
p.Value = 1;
}
int count = SqlHelper.ExecuteNonQuery(connectiongStrings, CommandType.Text, sql,
new SqlParameter("@name", SqlDbType.NVarChar) { Value = this.txtName.Text },
new SqlParameter("@number", SqlDbType.NVarChar) { Value = this.txtNumber.Text },
new SqlParameter("@birthday", SqlDbType.NVarChar) { Value = this.txtBirthday.Text },
p,
new SqlParameter("@address", SqlDbType.NVarChar) { Value = this.txtAddress.Text },p1);
if (count > 0)
{
Response.Write("修改成功!");
// Response.Redirect("WebForm2.aspx"); 
}
else
{
Response.Write("修改失败!");
}
}
}
}

 每次页面加载都会首先执行Page_Load方法,而加上了page的IsPostBack(返回一个bool值,真则是回发,假则是首次加载)这个属性则可以避免了当点击修改按钮时,加载页面,此时又会执行Page_Load方法,把没有修改之前的值读取出来,从而导致修改不成功的结局。

posted @ 2013-09-14 18:35  我是张朋  阅读(310)  评论(0编辑  收藏  举报