1

因此,当我单击网页上的按钮时,如果我在本地执行它,它就可以正常工作。如果我在我的 GoDaddy 网络服务器上执行此操作,它会给我一个“操作必须是可更新查询”错误,并指向我的代码中的 com.ExecuteNonQuery。这是错误的 C#:

 protected void submitForMail(object sender, EventArgs e)
{
    string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\TravelJoansDB.mdb;";
    string cmdstr = "INSERT INTO EmailList(FirstName,LastName,EmailAddress) VALUES (@FirstName, @LastName, @EmailAddress)";
    OleDbConnection con = new OleDbConnection(constr);
    OleDbCommand com = new OleDbCommand(cmdstr, con);
    TextBox tFirstName = (TextBox)FormView1.FindControl("FirstName");
    TextBox tLastName = (TextBox)FormView1.FindControl("LastName");
    TextBox tEmail = (TextBox)FormView1.FindControl("EmailAddress");
    con.Open();
    com.Parameters.AddWithValue("@FirstName", tFirstName.Text);
    com.Parameters.AddWithValue("@LastName", tLastName.Text);
    com.Parameters.AddWithValue("@EmailAddress", tEmail.Text);
    com.ExecuteNonQuery();
    con.Close();
    string EmailAdded = "Your E-mail address has been added.";
    System.Console.Write(EmailAdded);
}

我不想更新表中的任何记录,我想将它们插入到表中。那么为什么它告诉我操作需要是一个可更新的查询呢?

4

2 回答 2

1

运行此程序的用户不必permissions访问数据库文件。

根据您的条件检查和修改权限。

您还可以考虑将数据库文件的位置更改为另一个更易于访问的文件夹。

还要检查文件是否位于program files文件夹中,如果是,则会为用户创建权限问题。

权限设置方法:

要设置此权限,请右键单击App_Data文件夹(或您将 mdb 文件放入的任何其他文件夹)并选择属性。

寻找Security tab. 如果看不到它,则需要转到我的电脑,然后单击工具并选择文件夹选项。

然后单击View tab。滚动到底部并取消选中“使用简单文件共享(推荐)”。

返回“安全”选项卡,您需要将相关内容添加account到“组或用户名”框。

单击添加。然后单击Advanced,然后单击Find Now

应列出适当的帐户。双击它以将其添加到组或用户名框中,然后检查权限中的修改选项。

于 2013-09-12T05:13:42.023 回答
0

这确实是权限错误,但我不知道我可以在 GoDaddy 的服务器上设置权限。我在这里找到了它的链接。这解决了我的问题。谢谢大家!

于 2013-09-12T23:32:16.890 回答