有没有可能是服务器配置的问题?既然asp能但是.net能,那么asp访问数据库和asp.net访问数据库使用的区别是什么呢?可能是什么问题呢?

解决方案 »

  1.   

    看看你的access库的安全选项卡中有asp.net的权限吗?
      

  2.   

    这个错误通常是在你对数据库内容做更新或者在试图改变数据库内容的时候产生的,这个错误的发生是因为您的ADO操作由于以下的某个原因而导致写入失败:1、最普遍的原因是您的INTERNET来宾帐号(Iuser_machine)没有写入数据库(ACCESS)的权限,您可以在浏览器安全设置里给该帐号设置正确的权限。注意:当使用ACCESS和ADO的时候,也必须给该帐号以写目录的权限,也就是存放该MDB文件的地方,这个是因为数据库引擎会建立一个.LDB文件来出路数据库的锁定操作。你同时也应该给INTERNET临时文件夹设置读写权限,因为数据库引擎有可能会在该目录里面建立相关临时文件。2、第二个原因是数据库的打开方式不对,比如打开方式是不可写的,也会导致该错误,当您使用CONNECTION对象的时候,您可以使用如下代码:
    SQL = "UPDATE Products Set UnitPrice = 2;" 
    Set Conn = Server.CreateObject("ADODB.Connection") 
    Conn.Mode = 3 ' 3 = adModeReadWrite 
    Conn.Open "myDSN" 
    Conn.Execute(SQL) 
    Conn.Close  
    注意,默认的模式是0,一般说来,该模式是允许更新操作的3、另外一个原因是你有可能在ODBC管理器里把相应的DNS设置里让READ ONLY选项给选中了4、最后一个原因(FOR SQL),您的操作可能违反了数据库参照完整性,下面是一些普遍的导致该错误的操作:
    比如您在试图改变一些不能改变的部件:比如交叉表、SQL PASS-THROUGH,连接,或者UPDATE操作一些已经设置为唯一的选项,比如一个自动编号的ID等等。
    还有一个普遍的原因是你的JOIN操作包含了没有唯一索引的关联表,在这种情况下,SQL无法保证您要试图更新的表里的数据是唯一的。任何一种原因都可能发生在很多情况下面,当您试图去更新一和一对多的联合,也会发生这个错误,除非允许层叠更新,请注意实施数据参照完整性希望能对你有所帮助。
      

  3.   

    我想借地问一下在c#中怎样更改access数据库的密码!
    谢谢
      

  4.   

    硬盘格式是NTFS的么,加上权限了
      

  5.   

    最后总结应该还是access文件属性的问题。
    注意程序本身没有任何问题。这可以从本机测试能正确运行验证。服务器是2k3。磁盘是ntfs格式。管理员已经把我的access文件属性修改为非只读了。还需要其他设置吗?