环境:VS2008+SQL2005我在用Linq做一条记录update操作时,发现更新不成功。但是在Page_Load里把赋值的语句拿掉后,却更新成功。请大家帮我看看,错在哪里并告知如何解决?谢谢代码如下: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;public partial class change_info : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string job_num = Session["Username"].ToString();
string name = Session["User"].ToString();
Label1.Text = job_num;
Label2.Text = name; //下面的语句拿掉,update就成功了
SqlConnection con = new SqlConnection("Server=FUDAN-3B0AD2827;uid=sa;pwd=fudan107;Database=fudanOA");// FUDAN-3B0AD2827 www-b881bf8c5fa
//打开数据库连接
con.Open();
string b_sql = "select * from dbo.bill_user where job_num='" +job_num +"'";
SqlCommand cmd = new SqlCommand(b_sql, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
TextBox3.Text = dr["academy"].ToString();
TextBox4.Text = dr["telephone"].ToString();
TextBox5.Text = dr["cellphone"].ToString();
TextBox6.Text = dr["address"].ToString();
TextBox7.Text = dr["e_mail"].ToString();
TextBox8.Text = dr["re"].ToString();
}
con.Dispose();
} protected void update()
{
string job_num = Session["Username"].ToString();
DataClassesDataContext lq = new DataClassesDataContext();
var result = from u in lq.bill_user
where u.job_num == job_num
select u;
foreach (bill_user user in result)
{
TextBox3.Text = user.academy;
TextBox4.Text = user.telephone;
TextBox5.Text = user.cellphone;
TextBox6.Text = user.address;
TextBox7.Text = user.e_mail;
TextBox8.Text = user.re;
}
lq.SubmitChanges();
} protected void Button1_Click(object sender, EventArgs e)
{
if(TextBox1.Text.Trim()!=TextBox2.Text)
RegisterStartupScript("", "<script>alert('请输入相同的新口令')</script>");
DataClassesDataContext lq = new DataClassesDataContext();
var result = from u in lq.bill_user
where u.job_num == Label1.Text.Trim()
select u;
foreach (bill_user user in result)
{
user.password = TextBox1.Text.Trim(); //很奇怪的,这些记录单独赋值如user.password ="11"都是成功的,
user.academy = TextBox3.Text.Trim();
user.telephone = TextBox4.Text;
user.cellphone = TextBox5.Text.Trim();
user.address = TextBox6.Text;
user.e_mail = TextBox7.Text.Trim();
user.re = TextBox8.Text;
}
lq.SubmitChanges();
update();
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;public partial class change_info : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string job_num = Session["Username"].ToString();
string name = Session["User"].ToString();
Label1.Text = job_num;
Label2.Text = name; //下面的语句拿掉,update就成功了
SqlConnection con = new SqlConnection("Server=FUDAN-3B0AD2827;uid=sa;pwd=fudan107;Database=fudanOA");// FUDAN-3B0AD2827 www-b881bf8c5fa
//打开数据库连接
con.Open();
string b_sql = "select * from dbo.bill_user where job_num='" +job_num +"'";
SqlCommand cmd = new SqlCommand(b_sql, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
TextBox3.Text = dr["academy"].ToString();
TextBox4.Text = dr["telephone"].ToString();
TextBox5.Text = dr["cellphone"].ToString();
TextBox6.Text = dr["address"].ToString();
TextBox7.Text = dr["e_mail"].ToString();
TextBox8.Text = dr["re"].ToString();
}
con.Dispose();
} protected void update()
{
string job_num = Session["Username"].ToString();
DataClassesDataContext lq = new DataClassesDataContext();
var result = from u in lq.bill_user
where u.job_num == job_num
select u;
foreach (bill_user user in result)
{
TextBox3.Text = user.academy;
TextBox4.Text = user.telephone;
TextBox5.Text = user.cellphone;
TextBox6.Text = user.address;
TextBox7.Text = user.e_mail;
TextBox8.Text = user.re;
}
lq.SubmitChanges();
} protected void Button1_Click(object sender, EventArgs e)
{
if(TextBox1.Text.Trim()!=TextBox2.Text)
RegisterStartupScript("", "<script>alert('请输入相同的新口令')</script>");
DataClassesDataContext lq = new DataClassesDataContext();
var result = from u in lq.bill_user
where u.job_num == Label1.Text.Trim()
select u;
foreach (bill_user user in result)
{
user.password = TextBox1.Text.Trim(); //很奇怪的,这些记录单独赋值如user.password ="11"都是成功的,
user.academy = TextBox3.Text.Trim();
user.telephone = TextBox4.Text;
user.cellphone = TextBox5.Text.Trim();
user.address = TextBox6.Text;
user.e_mail = TextBox7.Text.Trim();
user.re = TextBox8.Text;
}
lq.SubmitChanges();
update();
}
}
解决方案 »
- .net怎么控制用户退出,或关闭时,修改数据库?
- 在PHP中,可以使用如下方法实现局部缓存。在Asp.net中,如何实现?
- 安装vs2008出现1330错误,cab21.cab数字签名无效,哪位兄弟能发我这个文件,谢谢啊
- C# 怎么定义一个变量,占内存10个字节
- 请做过asp.net连接sybase数据库的朋友指点下
- 关于PETSHOP4中的缓存机制的问题
- TeeChart 控件问题 急急
- 高手请进,如何动态添加新的控件!(100分求解)立即结贴
- 验证Request.Form["monthtotal"]这个东西是否存在,怎么写
- 怎么样连接excel数据库
- 请问可以在页面开发(包括前后台)完成后,再由美工做界面美化吗?
- .net 老是提示验证码错误 写法有错吗?
{
string job_num = Session["Username"].ToString();
DataClassesDataContext lq = new DataClassesDataContext();
var result = from u in lq.bill_user
where u.job_num == job_num
select u;
foreach (bill_user user in result)
{
TextBox3.Text = user.academy;
TextBox4.Text = user.telephone;
TextBox5.Text = user.cellphone;
TextBox6.Text = user.address;
TextBox7.Text = user.e_mail;
TextBox8.Text = user.re;
}
lq.SubmitChanges();
}搞笑了。。你这是UPDATE操作么? 写反了吧
{
if(TextBox1.Text.Trim()!=TextBox2.Text)
RegisterStartupScript("", "<script>alert('请输入相同的新口令')</script>");
DataClassesDataContext lq = new DataClassesDataContext();
var result = from u in lq.bill_user
where u.job_num == Label1.Text.Trim()
select u;
foreach (bill_user user in result)
{
user.password = TextBox1.Text.Trim(); //很奇怪的,这些记录单独赋值如user.password ="11"都是成功的,
user.academy = TextBox3.Text.Trim();
user.telephone = TextBox4.Text;
user.cellphone = TextBox5.Text.Trim();
user.address = TextBox6.Text;
user.e_mail = TextBox7.Text.Trim();
user.re = TextBox8.Text;
}
lq.SubmitChanges();
update(); 问题就在这里
}
{ if(!PostBack)
{
string job_num = Session["Username"].ToString();
string name = Session["User"].ToString();
Label1.Text = job_num;
Label2.Text = name; //下面的语句拿掉,update就成功了
SqlConnection con = new SqlConnection("Server=FUDAN-3B0AD2827;uid=sa;pwd=fudan107;Database=fudanOA");// FUDAN-3B0AD2827 www-b881bf8c5fa
//打开数据库连接
con.Open();
string b_sql = "select * from dbo.bill_user where job_num='" +job_num +"'";
SqlCommand cmd = new SqlCommand(b_sql, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
TextBox3.Text = dr["academy"].ToString();
TextBox4.Text = dr["telephone"].ToString();
TextBox5.Text = dr["cellphone"].ToString();
TextBox6.Text = dr["address"].ToString();
TextBox7.Text = dr["e_mail"].ToString();
TextBox8.Text = dr["re"].ToString();
}
con.Dispose();
}
}原因是在你点BUTTON后 页面刷新 又重新读了一次数据库的值 将你新输入的值给覆盖掉了
加上if(!IsPostBack)就行了