请教一个虚拟主机上asp.net+access数据库只读问题

cqtonyzhang 2011-10-26 06:43:44
1、我用的是虚拟主机,自己改不了文件的权限。

2、我用asp.net+Access做的东西,在本地调试没问题,但是上传到虚拟主机以后,可以正常浏览,不能添加、删除、更新数据。出现错误:System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。

网上搜索,全都是一样的内容,说是要改文件权限,我用的是虚拟主机,改不了。

今天把虚拟主机上的文件全删除了,自己传了几个文件,专门去试这个问题:

新建了一个数据库db1.mdb,只有一个表test_table;字段id,test1

做了一个asp.net的文件,向这个表写入数据;

做了一个asp文件,向这个表写入数据;

都上传到虚拟主机以后:

1、先运行asp文件,可以正常读取,也可以正常写入数据,说明这个数据库db1.mdb的写入权限是有的;

2、再运行asp.net文件,能正常读取数据,但是往数据库写入数据,出现错误:System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。

3、再回过头来运行asp文件,能正常读取,写入数据时出现错误信息:Microsoft JET Database Engine 错误 '80040e09'

不能更新。数据库或对象为只读。

也就是说,只要运行了asp.net文件,试图往数据库写入数据出错后,数据库就会变成只读的属性。

不管等多久都恢复不了,只有把根目录的web.config文件删除,asp文件才能正常插入数据。

貌似web.config对数据库是否只读影响很大。

所以想请教各位一下:对于虚拟主机用户,更改不了文件权限的,有没有其他方法解决这个问题呢?或者是我的asp.net代码写的有问题呢?

asp.net的代码

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Text;


public class DBconn
{
public static OleDbConnection GetConnection()
{
string conn_str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\virtualHost\\web357544\\www\\db1.mdb;Persist Security Info=True;";
OleDbConnection conn = new OleDbConnection(conn_str);
return conn;
}
}

public partial class _Net : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OleDbConnection myConn = DBconn.GetConnection();
myConn.Open();
string strSQL = "select top 1 * from test_table order by id desc";
OleDbCommand cmd = new OleDbCommand(strSQL,myConn);
OleDbDataReader dr = cmd.ExecuteReader();
dr.Read();
this.Label1.Text = "最后一次添加的数据:"+dr["test1"].ToString();
dr.Close();
myConn.Close();


}
protected void Button1_Click(object sender, EventArgs e)
{
string test_table = Request.Form["test_table"].ToString();
OleDbConnection myConn = DBconn.GetConnection();
myConn.Open();
string strSQL = "insert into test_table (test1) values ('"+test_table+"')";
OleDbCommand cmd = new OleDbCommand(strSQL,myConn);
cmd.ExecuteNonQuery();
myConn.Close();
Response.Redirect("Net.aspx");
}
}

...全文
110 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧