access的sql里不能用@XXX来命名参数,只能用?.
传递参数也不认名字,只认传递的顺序。这就意味着,即使在sqlserer中是一个参数,如果要在sql语句中出现两次,你也要传两道。
传递参数也不认名字,只认传递的顺序。这就意味着,即使在sqlserer中是一个参数,如果要在sql语句中出现两次,你也要传两道。
解决方案 »
- 在vs2010中,打开的窗口很多,有一次能点右键有关闭所有窗口,但现在怎么也找不到了。请问如何才能关闭所有打开的窗口和页面。???
- 窗体加载中toolStrip的选项
- 如何动态改变Group Box的字体大小?在线等
- 如果把内网中 发布系统 生成的静态页面 发送到 外网的一台服务器上,那么,外网服务器上的用户评论信息及论坛帖子数据,如何传回内网中????
- 什么样的类不能被继承,什么样的类不能被实例化?在c#里
- datagrid 右对齐问题。
- vb6.0转换为c#问题三个!
- C#中怎样做WORD文档增、删、改、存的web程序?
- C#中可否象VB一样添加模块,把部分函数写到模块中。使代码看起来更有规划。
- 请教:初学连接数据库:以下代码,出错。那么如何填充数据集?
- c# 数据源dataset更新数据库的问题。。求大神。
- c# 字符串转数组问题
大神,求讲解下,我这里是什么问题???就2个参数,顺序肯定没错吧?为什么还是不更新呢
我开始怀疑自己的表达能力
大神我觉得我不是参数顺序的问题,或者冒号,问号还是@号的问题,因为其他几句的编译是通过的....
将代码中的no去掉后也能编译通过,如下代码是可以通过的
string sqlStr = @"update APPRecord set R_Sate=@Choice";
SqlMth.isInsert(sqlStr, new OleDbParameter("@Choice", Choice)原文的No在access中是自增长长整型,而我参数中用过int,用过string各种了就是不更新!
这是一个前几天自己写的软件,一开始用的是sqlserver2012,没什么问题,但是后来由于需要,所以改成access数据库版本的.所以产生了这个问题...至于SqlMth.update ,主要是返回一个datatable,用来和dategridview搭配,部分代码如下(由于我对oledb不太熟,所以是自己百度后更具ado的方式写的..不过应该是对的,其他几个界面都通过了,唯独这个窗体一直不成功()
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
return dt;
对于代码,我试过以下几个版本的,都不行!!!!!
直接用17作为数字传参,不更新
string sqlStr = "update APPRecord set R_Sate=@Choice where NO=@NO ";
SqlMth.update(sqlStr,new OleDbParameter("@Choice", Choice)
, new OleDbParameter("@NO",17)
);
把17加引号,作为字符串,不更新
string sqlStr = "update APPRecord set R_Sate=@Choice where NO=@NO ";
SqlMth.update(sqlStr,new OleDbParameter("@Choice", Choice)
, new OleDbParameter("@NO","17")
);
去掉where条件和参数,更新成功了!
string sqlStr = "update APPRecord set R_Sate=@Choice";
SqlMth.update(sqlStr,new OleDbParameter("@Choice", Choice));我确定access中有个no为17记录,同时No是自增长字段,长整型.