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