很简单的ASP。NET提交更新的问题,我郁闷,我急
今日刚转做ASP.NET ,之前做WINFORM程序的。
遇到一个在WINFORM上很简单的问题,就是提交更新
(前面的声明就不写了)
string strMap="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\\Inetpub\\wwwroot\\Menu_Data\\Data\\data.mdb;";
string strSql="UPDATE Menu_news SET n_title= 数据库组件使用演示',n_content='这是内容fafafafaf' WHERE n_id='1'";
ocn= new OleDbConnection(strMap);
ocmd =new OleDbCommand(strSql,ocn);
ocn.Open();
ocmd.ExecuteNonQuery();
Label1.Text="更新成功";
ocn.Close();
就这么几句我在winform 里面就能成功更新,可是移植到asp.net上就老报错,各式各样:
System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
或者 System.InvalidOperationException: ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.
还有的时候还会报data.mdb文件被独占
请问ASP.NET里面是不是更新语句和一般的.net winfrom程序不一样??该如何改?
问题点数:20、回复次数:7Top
1 楼Snowdust(雪尘)回复于 2006-02-12 15:32:11 得分 20
ACCESS所在的文件不能是只读的,而且在NTFS格式下“IUser_机器名”这个用户对ACCESS文件有写权限。Top
2 楼debug1984(debug1984)回复于 2006-02-12 15:46:31 得分 0
我也是这个问题,好郁闷啊,我NTFS的格式,但是属性里没有 安全 标签页,真的很郁闷,我自己写的ASPX程序都可以写,但是在站点配置了的文件夹下就要出这样的问题,我说拷文件出来执行,又说什么资源文件找不到,好郁闷,好郁闷。Top
3 楼debug1984(debug1984)回复于 2006-02-12 15:47:16 得分 0
我把用户
aspnet
iusr_computer
iwam_computer
都放到管理员组了还是不能解决问题~~~郁闷死了。Top
4 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-02-12 15:56:47 得分 0
如果只是调试程序其它逻辑的目的,给你一个简单的临时办法:
把 windows\microsoft .net\相应版本号\config 目录中的machine.config配置文件改变,搜索其中的processmodel标签,其中标记使用aspnet身份启动asp.net进程,你可以把它修改为你的机器的系统管理员,并且写上登录密码。然后,进入iis把application pools的“权限”中添加入系统管理员。这时候你用系统管理员身份登录并调试程序。
如果成功,将来在找为什么aspnet身份权限不够的问题。Top
5 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-02-12 15:59:36 得分 0
目录的权限、文件的权限、虚拟目录的权限、注册表的权限、文件是否被标记为只读,你的access数据库是否被其它非正常退出的客户端锁死或者损坏,等等很多原因。Top
6 楼debug1984(debug1984)回复于 2006-02-12 16:22:30 得分 0
sp1234(半梦半醒之间,情人沙漠上好像只有我一颗不死的种子。) :
application pools 没有找到。配置文件改了~数据库文件是同样的~
我把另外一个文件夹可以执行的程序拷过来,就在这个问题文件夹里不能执行~
~Top
7 楼woshimqw(狒狒)回复于 2006-02-12 19:25:22 得分 0
果然我在文件的属性里面发现了NTFS格式下才有的“IUser_机器名”的相关选项,设置成允许就行了,谢谢Top




