我的SQl语句也没写错,为什么数据库的数据就是更新不了呢

zhengchengbaishi 2012-02-19 02:43:09
  SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
conn.Open();
DateTime jinctime = DateTime.Parse(txtbirthday.Text.Trim());
string str_up = "update person set name='"+txtname.Text+"',birthday='"+jinctime +"',sex='"+txtsex.Text+"',major='"+txtmajor.Text+"',dept='"+txtdept.Text+"',email='"+txtemail.Text+"',sj='"+txtsj.Text+"',gddh='"+txtgddh.Text+"',qq='"+txtqq.Text+"',yx='"+txtyx.Text+"', xlxxxdz='"+txtxlxxxdz.Text+"',jtxxdz='"+txtjtxxdz.Text+"',jtlxfs='"+txtjtlxfs.Text+"',bynf='"+txtbynf.Text+"',yzxrzqk='"+txtyzxrzqk.Text+"',zxsxzy='"+txtzxsxzy.Text+"',fdy='"+txtfdy.Text+"',xjydw='"+txtxjydw.Text+"',dwxxdz='"+txtdwxxdz.Text+"',dwlxfs='"+txtdwlxfs.Text+"',bz='"+txtbz.Text+"' where username='"+username+"'";

SqlCommand sl = new SqlCommand(str_up,conn);
sl.ExecuteNonQuery();
conn.Close();
//Maticsoft.BLL.person bll = new Maticsoft.BLL.person();
//bll.Update(str_up);
Maticsoft.Common.MessageBox.ShowAndRedirect(this, "保存成功!", "../xinxi_new.aspx");


简单的俩句代码,求解我哪里错了?
...全文
291 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangzhelu 2012-02-21
  • 打赏
  • 举报
回复
你把它放在try语句块下面看报不报错
qujianye 2012-02-20
  • 打赏
  • 举报
回复
where username='"+username+"'";
这里的后面的username是变量?
木水云 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 abbey 的回复:]
先学一学基本的调试技巧吧。

1. 在 SqlCommand sl = new SqlCommand(str_up,conn); 这里打个断点,编译并运行,然后从调试窗口把str_up的值复制出来。

2. 打开sql server management studio之类的工具,连接到你的数据库,新建查询,把str_up的值粘贴进去,分析并执行之,看你的str_up语法是否正确,是否能正确……
[/Quote]

三楼说的没错
DENQH 2012-02-19
  • 打赏
  • 举报
回复
[username]
孟子E章 2012-02-19
  • 打赏
  • 举报
回复
1,为安全和简单起见,采用参数化查询
sql = "update person set name=@name,sex=@sex,...where username=@username"

cmd.Parameters.AddWithValue("@name",txtname.Text);

cmd.Parameters.AddWithValue("@sex",txtsex.Text);
....
cmd.Parameters.AddWithValue("@username",username);


2,检查数据库是否有可更新的权限

3,确保你更新的数据库是你查看的数据库
zhengchengbaishi 2012-02-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 abbey 的回复:]

先学一学基本的调试技巧吧。

1. 在 SqlCommand sl = new SqlCommand(str_up,conn); 这里打个断点,编译并运行,然后从调试窗口把str_up的值复制出来。

2. 打开sql server management studio之类的工具,连接到你的数据库,新建查询,把str_up的值粘贴进去,分析并执行之,看你的str_up语法是否正确,是否能正……
[/Quote]
调试我会啊,我按你说的那个方法弄过了,还是没发现错误啊!
老毕 2012-02-19
  • 打赏
  • 举报
回复
先学一学基本的调试技巧吧。

1. 在 SqlCommand sl = new SqlCommand(str_up,conn); 这里打个断点,编译并运行,然后从调试窗口把str_up的值复制出来。

2. 打开sql server management studio之类的工具,连接到你的数据库,新建查询,把str_up的值粘贴进去,分析并执行之,看你的str_up语法是否正确,是否能正确执行
  • 打赏
  • 举报
回复
string str_up = "update person set name='"+txtname.Text+"',birthday='"+jinctime +"',sex=='"+txtsex.Text+"',major='"+txtmajor.Text+"',dept='"+txtdept.Text+"',email='"+txtemail.Text+"',sj='"+txtsj.Text+"',gddh='"+txtgddh.Text+"',qq='"+txtqq.Text+"',yx='"+txtyx.Text+"', xlxxxdz='"+txtxlxxxdz.Text+"',jtxxdz='"+txtjtxxdz.Text+"',jtlxfs='"+txtjtlxfs.Text+"',bynf='"+txtbynf.Text+"',yzxrzqk='"+txtyzxrzqk.Text+"',zxsxzy='"+txtzxsxzy.Text+"',fdy='"+txtfdy.Text+"',xjydw='"+txtxjydw.Text+"',dwxxdz='"+txtdwxxdz.Text+"',dwlxfs='"+txtdwlxfs.Text+"',bz='"+txtbz.Text+"' where username='"+username+"'";

.....应该是 这条 SQL 语句的问题。
  • 打赏
  • 举报
回复
肯定 还是 SQL 语句的问题。要不然怎么可能数据库没有更新成功呢? 你执行完上面的SQL语句后,他是不是提示更新成功? 但你返回导数据库的时候里面的数据却没有更新是嘛?

110,539

社区成员

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

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

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