因此,当我点击我的网页上的按钮时,如果我在本地执行此操作,则可以正常工作。如果我在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);
}
我不想更新表中的任何记录,我想将它们插入表中。那么为什么它告诉我操作需要是一个可更新的查询?
答案 0 :(得分:1)
运行此程序的用户没有permissions
来访问数据库文件。
根据您的条件检查和修改权限。
您还可以考虑将数据库文件的位置更改为另一个更易于访问的文件夹。
同时检查文件是否位于program files
文件夹中,如果是,则会为用户创建权限问题。
权限设置方法:
要设置此权限,请右键单击App_Data
文件夹(或将mdb文件放入其中的任何其他文件夹),然后选择“属性”。
寻找Security tab
。如果看不到,则需要转到“我的电脑”,然后单击“工具”并选择“文件夹选项”。
然后点击View tab
。滚动到底部并取消选中“使用简单文件共享(推荐)”。
返回“安全”选项卡,您需要将相关的account
添加到“组或用户名”框中。
点击“添加”。然后点击Advanced
,然后点击Find Now
。
应列出相应的帐户。双击它以将其添加到“组或用户名”框,然后选中权限中的“修改”选项。
答案 1 :(得分:0)
这确实是一个权限错误,但我不知道我可以在GoDaddy的服务器上设置权限。我找到了一个链接here。这解决了我的问题。谢谢大家!