insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Re) values("008","饭店","刀",2333,333,333,776889,"大声的","反倒是")我记得ACCESS,插入字符串用的双引号。

解决方案 »

  1.   

    自己先顶一下,我以前也用过access做小程序的,不过那时候我的数据操作那部分不是我写的,不知道为什么我用就不行呢.
      

  2.   

    没碰到过,感觉挺奇怪的语句看起来没什么问题,不过ACESS与SQL SERVER有点区别.你先试着用语句:
    insert into Stock (GoodsNum,CustomerName,GoodsName,SumCount,SumBoxCount,GoodsPrice,GoodsValue,ChargeMan,Re) values('008','饭店','刀',2333,333,333,776889,'大声的','反倒是')
    看是否会有记录.
      

  3.   

    不是那个问题,如果说权限问题,那第通常是指ntfs权限问题。点开 access 文件所在文件夹,右健属性》安全性》增加对 iusr_计算机名用户 或 everyone 的写权限即可。
    但是你说程序没有报任何异常,这并不正常,代码中是否用了try catch,如果有,把它去掉,先看看报什么错再确定原因,否则就是无的放矢
      

  4.   

    我已经把trycatch都去掉了,一句异常处理的语句都没有,我就是想看看到底什么错,但它就是不报错,而且还返回影响行数为一,关键的是我查询是没问题的,获取dataset 和dataReader都没问题,就是插不进去
      

  5.   

    SQL SERVER 和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: 1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation 
    2Services(数据转换服务),然后选择  czdImport Data(导入数据)。 
    3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 
    4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。 
    5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 
    6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。Transact-SQL语句进行导入导出:1.在SQL SERVER里查询access数据:
    -- ======================================================
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名
    -------------------------------------------------------------------------------------------------
    2.将access导入SQL server 
    -- ======================================================
    在SQL SERVER 里运行:
    SELECT *
    INTO newtable
    FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
          'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名
    -------------------------------------------------------------------------------------------------
    3.将SQL SERVER表里的数据插入到Access表中
    -- ======================================================
    在SQL SERVER 里运行:
    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 
    (列名1,列名2)
    select 列名1,列名2  from  sql表
    实例:
    insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'C:\db.mdb';'admin';'', Test) 
    select id,name from Test
    INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)
    SELECT *
    FROM sqltablename
    -------------------------------------------------------------------------------------------------
      

  6.   

    可能是Access数据库文件的读写权限的问题!建议看一下该盘符文件系统是NTFS还是FAT/FAT32?如果是NTFS的话,然后选中数据库右键开属性->安全->用户里的权限是否已经勾选“修改”与“写入”选项->如果没有的话请选中->确定!然后试试看看!如果是FAT/FAT32的话,进本上不存在以上问题,但要注意该文件的属性了,看看系统用户是否可以操作该文件。
      

  7.   

    没报错,查检你操作的access与你自己查看的access是不是同一个文件。 
      

  8.   

    虽然是比较早的帖子,不过,最近在做VB.net的时候也遇到了类似问题,后来发现,问题是出在用DataGridView绑定Access的时候,系统会提示询问是否复制数据库文件到输出目录,如果点“是”的话,系统会把这个数据库文件复制到输出目录bin\debug中,那么在进行数据操作的时候实际上是在对bin\debug中的数据库文件进行的,而原库文件是不受影响。这时候要对原库文件也进行更新的话就需要另外的写代码来实现。
    所以想要直接对原库文件进行操作的话,在跳出提示的时候点“否”就行了。因为用的是日文的环境,跳出提示的时候只看了个大概,结果选了“是”就发现了这个问题。
      

  9.   

    3.access数据库的权限
    1)插入语句正确执行也通过就是不能成功插入数据,结果是数据库的权限设置不够。
    2)主要的问题是我在解决方案中添加了一个类库Common用户数据库操作,当然连接数据库的方法Getconnection()也定义在
    这个类库中,所以我就把access数据库FS.accdb放在了类库项目下的Data文件夹下,我编译执行没错,查询数据库也没错误,
    当我执行插入命令时奇怪发生了执行正确不报错误,但是Data文件夹下的数据库中就是没有新的数据,后来我
    一步步的调试看到数据库连接语句时才大吃一惊:(原来连接到的是主项目下的Bin/Debug/Data/数据库名),我打开项目
    文件夹,在Common文件夹中的Bin/Debug/Data/下发现了一个系统自动复制了一个FS.accdb,同时在主项目下的Bin/Debug/Data
    中也有一个FS.accdb,我想可能是路劲冲突原因,造成两个数据库都没法写入。于是我将连接字符串改成
    string oledbconnectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=./Data/FS.accdb;Persist Security Info=True";
    直接指向了主项目下的Bin/Debug/Data/FS.accdb,插入就成功了。
    这个原因可能是数据库没有直接放在界面层项目中的原因,而且在wpf程序中xml,access(现在只用了这两个)数据提供文件都
    只能放在Bin文件夹下。老火哦...