c#写的一个winform单机pc软件使用access数据库打包后只能读不能写 5C

各位大佬救救孩子啊 我已经在我电脑上把上面几个全部勾选下来了
但是打包发布后 在对方电脑上 还是只有读的权限 只要一插入就会出错

我使用的是access数据库 为了能单机打包过去

不知道这还是我的权限没有设置好
还是不能用这个cmd2.ExecuteNonQuery();方法来执行插入语句?
下面是错误里面提到的第69行代码的上下文

67 cmd2.CommandText = "insert into userlogin(username,userpass) values(" + "\"" + textBox1.Text + "\"" + "," + "\"" + textBox2.Text + "\"" + ")";

68 MessageBox.Show(cmd2.CommandText);

69 cmd2.ExecuteNonQuery();

图片说明

System.Data.OleDb.OleDbException (0x80004005): 操作必须使用一个可更新的查询。

下面是错误里面提到的第69行代码的上下文

67 cmd2.CommandText = "insert into userlogin(username,userpass) values(" + "\"" + textBox1.Text + "\"" + "," + "\"" + textBox2.Text + "\"" + ")";

68 MessageBox.Show(cmd2.CommandText);

69 cmd2.ExecuteNonQuery();

2个回答

应该还是权限的问题,当你的程序放在program files下,默认用户没有改写的权限。你可以先手工设置下权限,看下程序能否运行。
如果可以
建议你把你的数据库放在用户的c:/user/username下面

1.首先确定打包后连接字符串是否正确能否访问的到access 文件.
2.确保你的应用程序有权限访问这个文件,必定是文件.
3. 连接字符串 Provider 这个值请明确写成oldeb 这个你对应的查一下。
4.建议使用sqllite 不要用 access
希望能帮到你。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!