当前位置: 代码迷 >> ASP.NET >> ACCESS update 语法有关问题. 还是SQL用的习惯~ 郁闷!
  详细解决方案

ACCESS update 语法有关问题. 还是SQL用的习惯~ 郁闷!

热度:4026   发布时间:2013-02-25 00:00:00.0
ACCESS update 语法问题... 还是SQL用的习惯~ 郁闷!~
这个是SQL的语句~
------------------------------------
string   sqlstr   =   "update   表   set   字段1= ' "
        +   ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()   +   " ',字段2= ' "
        +   ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim()   +   " ',字段3= ' "
        +   ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim()   +   " '   where   id= ' "
        +   GridView1.DataKeys[e.RowIndex].Value.ToString()   +   " ' ";

-------------------------------------------
求:
    1.上面功能一样的ACCESS   update   语句    
    2.ACCESS   UPDATE   的语法
------------------
晕了半天了     就是更新不上去   ..    
  真郁闷!
小弟谢谢大家了...        



------解决方案--------------------------------------------------------
是不是表名或者字段名称用了access保留字?全部用[]号括起来试试
还有数字类型字段值不要 ' '引号
------解决方案--------------------------------------------------------
你可以输出语句,看看有没有问题,然后复制到access环境中试试
------解决方案--------------------------------------------------------
LZ注意,最好使用command传参数的方式执行SQL,你这很容易被注入的。

另外,要先得到这个SQL文,如果有出错,请给出出错信息,如果没有,则使用相同的where条件,select一把看看,数据是否存在,条件是否正确。
------解决方案--------------------------------------------------------
先看看调试后得到的update语句是什么
------解决方案--------------------------------------------------------
如果说,删除能用,再结合你所说的出错信息,那说明你更新的某一字段值,超出了该字段类型所支持的最大值。如,integer型的,不能超出2的16次方吧,奶奶的,我搞不清楚各数据类型的最大值了。
------解决方案--------------------------------------------------------
把输出的SQL内容贴出来,SQL与access有一些语法差别的
------解决方案--------------------------------------------------------
access表字段名字有时要加上[],可以在.net里面调试查看.net生成的SQL
------解决方案--------------------------------------------------------
update tablename set field=value where ..

比如在SQL中查询日期类型的用2005-1-1就行了,在access中要用#2005-1-1#
------解决方案--------------------------------------------------------
应该会自动类型转换吧,象LZ的ID,传的参数是字符串,但我估计DB里的是数字类型,但删除时不会报错啊。
为了大家能更直观得分析你的问题,建议帖出数据表结构及参数内容。
------解决方案--------------------------------------------------------
是不是表名或者字段名称用了access保留字
------解决方案--------------------------------------------------------
呵呵,怎么感觉大家在猜谜。。。。
------解决方案--------------------------------------------------------
如果你數據庫的Id字段為數值型,而傳入參數是字符的話,需要這樣寫:

update yourTable set yourField = newValue where Id = clng( '字符型Id的值 ');
------解决方案--------------------------------------------------------
先把textbox付值吧。 這樣太亂了。
access保留字的話要加上[] 比如textbox是密碼
------解决方案--------------------------------------------------------
指定的参数已超出有效值的范围 呢 ?

ACCESS的UPDATA语法怎么用的? 哪位大哥给举个例子....
------------------------
你的update语法没错,参数超过有效值,可能是要修改的数据超过了你对应字段设置的长度,你输出你的SQL语句看看,再去数据库中字段属性中看看是不是这样
------解决方案--------------------------------------------------------
access文本字段默认长度是50
  相关解决方案