当前位置: 代码迷 >> ASP.NET >> 请大家帮小弟我看看这句超简单update语句如何没有效果
  详细解决方案

请大家帮小弟我看看这句超简单update语句如何没有效果

热度:9187   发布时间:2013-02-25 00:00:00.0
请大家帮我看看这句超简单update语句怎么没有效果。
conn.Open();//SqlConnection   conn,已经初始化过。
SqlCommand   cmd   =   new   SqlCommand();
string   updateString   =   "update   consumer   set   [yonghuname]   =   @yonghuname   where   [danhao]   =   @danhao ";
cmd.Connection   =   conn;
cmd.CommandText   =   updateString;
cmd.Parameters.Add(new   SqlParameter( "@yonghuname ",   YongHuName.Text));
cmd.Parameters.Add(new   SqlParameter( "@danhao ",   DanHao.Text));
cmd.ExecuteNonQuery();

数据库里那行数据就是改不了,我检查了很多次,就是改不了啊

------解决方案--------------------------------------------------------
你单步调试一下,监视一下updateString 的值,把它的值拷到查询分析器里,看报什么错!
------解决方案--------------------------------------------------------
检查你的表名和列名是否和数据库中的一样.
------解决方案--------------------------------------------------------
try

string updateString = "update consumer set [yonghuname] = ' "+@yonghuname+ " ' where [danhao] = ' "+@danhao+ " ' ";

------解决方案--------------------------------------------------------
代码上看没什么问题,主要是是否正确取得了参数,断点看下两个参数的内容是否正确
------解决方案--------------------------------------------------------
下个断点跟踪调试下。这种问题一半是粗心所致
------解决方案--------------------------------------------------------
怎么看你的存储过程这么别扭啊
把string updateString = "update consumer set [yonghuname] = @yonghuname where [danhao] = @danhao ";

放在数据库中不好吗?
------解决方案--------------------------------------------------------
....小問題,看看參數有沒有取到值,sql欄位有沒有寫正確...
------解决方案--------------------------------------------------------
你这个表名也很奇怪
consumer

貌似是
customer
------解决方案--------------------------------------------------------
有可能是字段类型问题
------解决方案--------------------------------------------------------
单步执行好好看下.
------解决方案--------------------------------------------------------
conn.Open();//SqlConnection conn,已经初始化过。
SqlCommand cmd = new SqlCommand();
string updateString = "update consumer set [yonghuname] = @yonghuname where [danhao] = @danhao ";
cmd.Connection = conn;
cmd.CommandText = updateString;
cmd.Parameters.Add(new SqlParameter( "@yonghuname ", YongHuName.Text));
cmd.Parameters.Add(new SqlParameter( "@danhao ", DanHao.Text));
cmd.ExecuteNonQuery();
改成如下:
conn.Open();//SqlConnection conn,已经初始化过。
SqlCommand cmd = new SqlCommand();
string updateString = "update consumer set [yonghuname] = ' "+@yonghuname+ " ' where [danhao] = ' "+@danhao+ " ' ";
cmd.Connection = conn;
cmd.CommandText = updateString;
cmd.Parameters.Add(new SqlParameter( "@yonghuname ", YongHuName.Text));
cmd.Parameters.Add(new SqlParameter( "@danhao ", DanHao.Text));
cmd.ExecuteNonQuery();

------解决方案--------------------------------------------------------
应该不是代码的问题 看看那条数据是否存在
------解决方案--------------------------------------------------------
每次页面刷新是执行page_load,你的数据又被显示了一次,所以你填的值是没用的,你要把数据显示写在ispostback下
------解决方案--------------------------------------------------------
最好单步一下,看看数据库更新的过程。
  相关解决方案