C# access 数据库问题

问题描述

用access数据库,为什么单独在access运行,没有问题,放到C#里就不成功,请教privatevoidUpdateChecklistQty(intauditId,intDept_Id,stringDsrc){stringqueryString;queryString="updatetbl_pre_auditdeptsetqty_to_inspect=qty_to_inspect-1whereaudit_id=@AuditIDanddept_id=@DeptIDanddept_src=@DeptSrc";OleDbParameter[]parameters={newOleDbParameter("@DeptID",OleDbType.Integer),newOleDbParameter("@DeptSrc",OleDbType.VarChar),newOleDbParameter("@AuditID",OleDbType.Integer)};parameters[0].Value=Dept_Id;parameters[1].Value=Dsrc;parameters[2].Value=auditId;dbObj.RunStatement(queryString,parameters);//runquery}

解决方案

解决方案二:
错误是什么啊?你这样问,别人怎么答?
解决方案三:
不知道错误在哪,就是数据库的值没有变,但是单独在access运行sql语句没有问题
解决方案四:
那你设一个断点看看,要是数据库的值没有变.且你的SQL语句执行没有错.那就是你程序的错.看看程序中的字段和SQL语句中的字段一样不一样.设断点看在哪报错.
解决方案五:
dbObj.RunStatement(queryString,parameters);//runquery此方法的代码贴出来看!
解决方案六:
publicclassJetOle{protectedOleDbConnectionConnection;publicJetOle(stringdbConnectionString);protectedstringConnectionString{get;}publicintRunStatement(stringqueryString,IDataParameter[]parameters);publicDataSetRunStatement(stringqueryString,IDataParameter[]parameters,stringtableName);publicvoidRunStatement(stringqueryString,IDataParameter[]parameters,DataSetdataSet,stringtableName);}
解决方案七:
设断点没有报错阿
解决方案八:
我又重新写了一下,可是数据库值还是没有改到。debug也没报错,在access单独运行sql语句也没问题,怎么放c#里就不行?请教个位问题在哪?privatevoidUpdateChecklistQty(intauditId,intDept_Id,stringDsrc){stringCString=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:DocumentsandSettingssunyiDesktopv1.0.0.9PreOpeningAuditClientbinDebugIHG_WindowsApp.mdb";OleDbConnectionconnect=newOleDbConnection(CString);OleDbCommandcmd1=newOleDbCommand("updateTBL_PRE_AUDITDEPTsetQTY_TO_INSPECT=QTY_TO_INSPECT-1whereAUDIT_ID=@AuditIDandDEPT_ID=@DeptIDandDEPT_SRC=@DeptSrc",connect);cmd1.Parameters.Add("@DeptID",OleDbType.VarChar).Value=Dept_Id;cmd1.Parameters.Add("@AuditID",OleDbType.VarChar).Value=auditId;cmd1.Parameters.Add("@DeptSrc",OleDbType.VarChar).Value=Dsrc;connect.Open();cmd1.ExecuteNonQuery();connect.Close();}
解决方案九:
在执行前,设置断点检查intauditId,intDept_Id,stringDsrc三个参数的值是否正确还不行的情况下手工修改下列代码cmd1.Parameters.Add("@DeptID",OleDbType.VarChar).Value=Dept_Id;cmd1.Parameters.Add("@AuditID",OleDbType.VarChar).Value=auditId;cmd1.Parameters.Add("@DeptSrc",OleDbType.VarChar).Value=Dsrc;改为固定值如:cmd1.Parameters.Add("@DeptID",OleDbType.VarChar).Value=1;cmd1.Parameters.Add("@AuditID",OleDbType.VarChar).Value=2;cmd1.Parameters.Add("@DeptSrc",OleDbType.VarChar).Value=3;再试试
解决方案十:
或者改成SQL的方式,执行下
解决方案十一:
又试了一下,我有30几行数据,用这个代码只能改第2行数据的值,其他的都改不了,数据库所有设置都检查了,第2行的数据跟其他的也没什么区别。郁闷
解决方案十二:
我测试了所有数据,只有当Dept_Id=1auditId=1的时候这短代码才好用,怎么回事啊stringCString=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=IHG_WindowsApp.mdb";OleDbConnectionconnection=newOleDbConnection(CString);OleDbCommandcmd1=newOleDbCommand("updateTBL_PRE_AUDITDEPTset[QTY_TO_INSPECT]=QTY_TO_INSPECT-1where[AUDIT_ID]=1and[DEPT_ID]=@DIDand[DEPT_SRC]=@DeptSrc",connection);cmd1.Parameters.Add("@DID",OleDbType.Integer).Value=Dept_Id;cmd1.Parameters.Add("@AuditID",OleDbType.Integer).Value=auditId;cmd1.Parameters.Add("@DeptSrc",OleDbType.VarChar).Value=Dsrc;connection.Open();cmd1.ExecuteNonQuery();connection.Close();
解决方案十三:
代码没有错,搞不明白...
解决方案十四:
找到错误了,cmd1.Parameters.Add("@DID",OleDbType.Integer).Value=Dept_Id;cmd1.Parameters.Add("@AuditID",OleDbType.Integer).Value=auditId;这两行位置换一下就好了,晕死
解决方案十五:
帮你顶下
解决方案:
那么麻烦干嘛?直接用值代进去不就可以了.stringCString=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:DocumentsandSettingssunyiDesktopv1.0.0.9PreOpeningAuditClientbinDebugIHG_WindowsApp.mdb";OleDbConnectionconnect=newOleDbConnection(CString);stringsql="updatetbl_pre_auditdeptsetqty_to_inspect=qty_to_inspect-1whereaudit_id="+AuditID+"anddept_id="+DeptID+"anddept_src='"+DeptSrc+"'";OleDbCommandcmd1=newOleDbCommand(sql,connect);connection.Open();cmd1.ExecuteNonQuery();connection.Close();

时间: 2024-07-29 01:13:39

C# access 数据库问题的相关文章

怎样在PHP中通过ADO调用Access数据库和COM程序

access|ado|程序|数据|数据库 PHP4已经支持Microsoft的COM技术.然而文档中在COM部分却提得很少. 这儿是几个我试过的例子.希望这些给你一些概念.注意的是这些只能运行在32位的Microsoft Windows平台下. 用php激活ADO ADO是Microsoft的数据库对象技术.ADO里面包括连接数据库的对象,从查询语句中返回数据的记录集对象和表现数据元素的字段对象. 许多数据库不直接支持ADO.代之的是很多数据库支持低两级的Microsoft数据库技术:ODBC和

使用ruby与MS Access数据库交互

ruby常规访问access数据库的方法应该是使用DBI库 :   require 'dbi' DBI.connect("DBI:ADO:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;")   可是 简单尝试之后没能成功,提示找不到驱动器ADO,懒得再试,遂找其他方法. 一番搜索之后,发现可以用WIN32OLE来访问access,写一个简单的类包装之:   require 'win32ole' class AccessDb at

如何使用c#操作ACCESS数据库

  如何使用c#操作ACCESS数据库: 手头没有Microsoft Access,如何建立数据库,一切依然简单. 首先引用C:Program FilesCommon FilesSystemadomsadox.dll,该DLL包含ADOX命名空间; 接着引用C:Program FilesCommon FilesSystemadomsjro.dll,该DLL包含JRO命名空间 SxS好问提示:如,导入dll不成功,手动把com组件导入为 .net组件,在用vs.net工具导入 using Syst

使用c#操作ACCESS数据库

  手头没有Microsoft Access,如何建立数据库,一切依然简单. 首先引用C:Program FilesCommon FilesSystemadomsadox.dll,该DLL包含ADOX命名空间; 接着引用C:Program FilesCommon FilesSystemadomsjro.dll,该DLL包含JRO命名空间 SxS好问提示:如,导入dll不成功,手动把com组件导入为 .net组件,在用vs.net工具导入 using System; using System.IO

用C#压缩和修复Access数据库

介绍 下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"ACCESS数据库还是一个".mdw"网络共享数据库,这个过程和你在用MS Access应用程序中使用的"工具-数据库实用工具-压缩和修复"时执行的操作完全一样.实例代码使用了"迟绑定"(运行中在内存中建立COM对象),这样就不需要在工程中加入COM引用了,也不需要在PC上安装MS Access应用程序.只需要一个Jet引擎(Jet引擎

用C#压缩和修复Access数据库(译)

access|数据|数据库|压缩 介绍        下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"还是一个".mdw"网络共享数据库,这个过程和你在用MS Access应用程序中使用的"工具-数据库实用工具-压缩和修复"时执行的操作完全一样.实例代码使用了"迟绑定"(运行中在内存中建立COM对象),这样就不需要在工程中加入COM引用了,也不需要在PC上安装MS Access应用程序.只

Asp.net在线备份、压缩和修复Access数据库示例代码

这篇文章主要介绍了Asp.net如何在线备份.压缩和修复Access数据库,需要的朋友可以参考下 1.问题的提出    在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库.在数据库的使用过程中经常性进行增加和删除操作.事实上,Microsoft Access并不能有效地释放已分配的但被删除的对象空间,这将意味着即使你删除了一个对象,而这个对象仍然占据着数据库的空间,使得数据库越来越大.不但占用不必要的空间,而且降低了数据库的效率.特别在虚拟站点上的问题尤为突出.因此

直接通过ADO操作Access数据库

我在"直接通过ODBC读.写Excel表格文件"和"直接通过DAO读.写Access文件",先后给大家介绍了ODBC和DAO两种数据库访问技术的基本使用方法,这次要给大家介绍的是ADO数据库访问技术的使用方法.ADO(Active Data Object,活动数据对象)实际上是一种基于COM(组件对象模型)的自动化接口(IDispatch)技术,并以OLE DB(对象连接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,利用它可以快速的创建数据库应

AJAX教程实例,ASP+AJAX+ACCESS数据库应用教程(附源码)

access|asp+|数据|数据库|ajax教程 AJAX教程实例[阿里西西原创]  其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互. 看完本篇ajax实例教程,我相信你也可以轻松做出一个初级的AJAX应用. 你也可以直接访问:http://www.alixixi.com/web/web/ajax/jiaocheng.html预览此篇ajax教程的源码示例. 好,下面我们就始一步步让你了解AJAX+ASP基础应用

ASP+Access数据库的安全法则

1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的html代码中的操作数据库的select及asp文件操作语法,大家可以把提交的字符转义,然后再存入数据库. 1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的html代码中的操作数据库的select及asp文件操作语法,大家可以把提交的字符转义,然后再存入数据库. 2.然后需要对访问Access数据库的页面进行授权,针对显示数据页面只能使用select语句,过滤其他的update,a