想修改用户资料,用的是gridview 中的HyperLinkField 链接到userinfomodi.asp?u_id={0}
userinfomodi.asp?u_id={0}代码如下: 可更新不成功!不知为什么?请教各位专家! protected void Page_Load(object sender, EventArgs e)
{
string uid;
uid = Request.QueryString["u_id"]; string strconn = ConfigurationManager.ConnectionStrings["paisoft_water_db"].ConnectionString;
string strcmd = "select * from user_info where u_id='" + uid + "'";
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand(strcmd, conn);
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader(); //LB_msg.Text = sdr.HasRows.ToString();
if (sdr.Read())
{
//设置标志
//usetrue = 1;
//读取数据
this.TB_uid.Text = sdr["u_id"].ToString();
this.TB_name.Text = sdr["u_name"].ToString();
this.TB_tel.Text = sdr["u_phone"].ToString();
this.TB_cardid.Text = sdr["u_idcard"].ToString();
this.TB_address.Text = sdr["u_address"].ToString();
//this.DropDownList2.Text = sdr["u_type"].ToString;
}
sdr.Close();
conn.Close();
conn.Dispose();
cmd.Dispose();
}}
// 更新记录代码如下: protected void Button_save_Click(object sender, EventArgs e)
{ //把数据写入到数据库
string strconn = ConfigurationManager.ConnectionStrings["paisoft_water_db"].ConnectionString;
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
string strcmd = "UPDATE [user_info] SET [u_name] = '" + this.TB_name.Text + "' ,[u_phone] = '" + TB_tel.Text + "' ,[u_idcard] = '" + TB_cardid.Text + "' ,[u_address] = '" + TB_address.Text + "' WHERE [u_id] = '" + Request.QueryString["u_id"] + "'";
SqlCommand cmd = new SqlCommand(strcmd, conn,tran ); try
{
cmd.ExecuteNonQuery();
tran.Commit();
Label2.Text = "修改成功";
}
catch
{
tran.Rollback();
Label2.Text = "错误!";
}
finally
{
conn.Close();
conn.Dispose();
tran.Dispose();
cmd.Dispose();
}
userinfomodi.asp?u_id={0}代码如下: 可更新不成功!不知为什么?请教各位专家! protected void Page_Load(object sender, EventArgs e)
{
string uid;
uid = Request.QueryString["u_id"]; string strconn = ConfigurationManager.ConnectionStrings["paisoft_water_db"].ConnectionString;
string strcmd = "select * from user_info where u_id='" + uid + "'";
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand(strcmd, conn);
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader(); //LB_msg.Text = sdr.HasRows.ToString();
if (sdr.Read())
{
//设置标志
//usetrue = 1;
//读取数据
this.TB_uid.Text = sdr["u_id"].ToString();
this.TB_name.Text = sdr["u_name"].ToString();
this.TB_tel.Text = sdr["u_phone"].ToString();
this.TB_cardid.Text = sdr["u_idcard"].ToString();
this.TB_address.Text = sdr["u_address"].ToString();
//this.DropDownList2.Text = sdr["u_type"].ToString;
}
sdr.Close();
conn.Close();
conn.Dispose();
cmd.Dispose();
}}
// 更新记录代码如下: protected void Button_save_Click(object sender, EventArgs e)
{ //把数据写入到数据库
string strconn = ConfigurationManager.ConnectionStrings["paisoft_water_db"].ConnectionString;
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
string strcmd = "UPDATE [user_info] SET [u_name] = '" + this.TB_name.Text + "' ,[u_phone] = '" + TB_tel.Text + "' ,[u_idcard] = '" + TB_cardid.Text + "' ,[u_address] = '" + TB_address.Text + "' WHERE [u_id] = '" + Request.QueryString["u_id"] + "'";
SqlCommand cmd = new SqlCommand(strcmd, conn,tran ); try
{
cmd.ExecuteNonQuery();
tran.Commit();
Label2.Text = "修改成功";
}
catch
{
tran.Rollback();
Label2.Text = "错误!";
}
finally
{
conn.Close();
conn.Dispose();
tran.Dispose();
cmd.Dispose();
}
你写错了吧。。SqlCommand cmd = new SqlCommand(strcmd, conn);
你试试
Request.QueryString["u_id"] 有值么跟踪一下你的SQL语句是否有结果呢
回复:
是从gridview 中的HyperLinkField 链接过来的,到userinfomodi.asp?u_id={0}。肯定有值。第2楼:
执行到 什么位置了 ?
回复:
提示修改成功,但数据库中根本没改。第3楼:
楼主的u_id是字符型的吗?
如果是int的话 为什么要写成这样的SQL语句 where u_id='1'
回复:
u_id是用户编号,是字符型的,因为了5位数字,但有类似00001这样的,所以只能用字符型。第4楼:
我知道了你那错了SqlCommand cmd = new SqlCommand(strcmd, conn,tran );
你写错了吧。。SqlCommand cmd = new SqlCommand(strcmd, conn);
你试试
回复:
tran是事务处理。
麻烦: 在Page_Load中,增加
if (!IsPostBack)
{
} 就行了!!