Asp.net 更新行时出错操作必须使用可更新查询

Asp.net 更新行时出错操作必须使用可更新查询,asp.net,ms-access,Asp.net,Ms Access,当我尝试更新记录时,出现以下错误: 错误[HY000][Microsoft][ODBC Microsoft Access驱动程序] 操作必须使用可更新的查询 然而,当我添加一个新的记录,它会添加刚刚好 我做了一些搜索,发现问题是因为ASP.NET工作进程没有更新数据库的权限。但是我如何才能插入新记录(不是插入更新数据库!)而不是更新(将记录设置为其他值) 如果没有在该表上声明主键,则经常会出现该错误 您的代码也非常难看,至少您应该使用参数化查询: OdbcCommand DbCommand =

当我尝试更新记录时,出现以下错误:

错误[HY000][Microsoft][ODBC Microsoft Access驱动程序]

操作必须使用可更新的查询

然而,当我添加一个新的记录,它会添加刚刚好

我做了一些搜索,发现问题是因为ASP.NET工作进程没有更新数据库的权限。但是我如何才能插入新记录(不是插入更新数据库!)而不是更新(将记录设置为其他值)


如果没有在该表上声明主键,则经常会出现该错误

您的代码也非常难看,至少您应该使用参数化查询:

OdbcCommand DbCommand = new OdbcCommand("UPDATE Users SET [Password] = @Password Where Name = @Name", DbConnection);
var param = DbCommand.Parameters.Add("@Password", OdbcType.Text);
param.Value = passWord;
param = DbCommand.Parameters.Add("@Name", OdbcType.Text);
param.Value = Session["LoginId"];

我希望这不仅仅是一个玩具/演示应用程序——将密码存储在明文中是不好的。将access中的密码存储在clear中是一个双重错误。

如果没有在该表中声明主键,则通常会出现该错误

您的代码也非常难看,至少您应该使用参数化查询:

OdbcCommand DbCommand = new OdbcCommand("UPDATE Users SET [Password] = @Password Where Name = @Name", DbConnection);
var param = DbCommand.Parameters.Add("@Password", OdbcType.Text);
param.Value = passWord;
param = DbCommand.Parameters.Add("@Name", OdbcType.Text);
param.Value = Session["LoginId"];

我希望这不仅仅是一个玩具/演示应用程序——将密码存储在明文中是不好的。将access中的密码存储在clear中是双重错误。

您是否能够查看/编辑.mdb文件的文件权限?您是否能够查看/编辑.mdb文件的文件权限?