【问题标题】:My access database does not update (ASP.NET)我的访问数据库不更新 (ASP.NET)
【发布时间】:2015-12-15 03:45:55
【问题描述】:

我认为我无法连接到我的数据库,因为它没有在应该更新的时候更新。我不确定这是为什么。 这是我的 .aspx.cs 文件:

public partial class addClass : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    private static OleDbConnection GetConnection()
    {
        String connection;
        connection = @"connectionstring";

        return new OleDbConnection(connection);

    }
    string one = "one";
    protected void submitButton_Click(object sender, EventArgs e)
    {
        OleDbConnection myConnection = GetConnection();


        try
        {

            myConnection.Open();
            String myQuery = "INSERT INTO Yoga Class([ClassName], [Level], [Duration], [Capacity], [Description]) values ('" +
                classNameTextBox.Text + "','" + levelDropDownList.SelectedItem.Text + "','" + durationDropDownList.SelectedItem.Text + "','" + capacityDropDownList.SelectedItem.Text +
                "','" + descriptionTextBox.Text + "');";

            String myQuery2 = "INSERT INTO YogaTeacher([TeacherID]) values('" +one+ "');";


            OleDbCommand myCommand = new OleDbCommand(myQuery, myConnection); //get rid of parameters 



            myCommand.ExecuteNonQuery();

            myConnection.Close();
        }

        catch
        {
            Response.Write("Form did not submit due to an error");
        }

        finally
        {
            myConnection.Close();
        }
    }



   }
}

我认为它没有更新的原因是因为表'Yoga Class'中的列teacherID是另一个表的外键。当我单击提交按钮时,会显示“catch”语句中的错误消息。我对么?如果是,我该如何更改我的代码以使其正常工作?

任何帮助表示赞赏

谢谢

【问题讨论】:

  • 介意我问你为什么使用 Microsoft Access?十年来我还没有看到有人使用访问数据库在应用程序上存储数据,这通常被认为不是一个好主意。除非是为了工作和你无法控制的工作要求。更好的选择包括 SQLite、Sql Server Express、Sql Server Compact Edition、PostGreSQL、MySql,甚至像 MongoDB 这样的 nosql 东西。或者可能是针对大学课程的,我真的希望大学课程不会仍然在 C# 课程中教授 Microsoft Access 数据库。
  • 这段代码很容易被sql注入。它实际上是在乞求被黑。
  • 这仅适用于大学项目,但我感谢您的建议

标签: c# asp.net database visual-studio ms-access


【解决方案1】:

您的代码: String myQuery = "INSERT INTO 瑜伽课... 表名“Yoga Class”中不应有空格。

【讨论】:

  • 发现很好,但这并没有解决问题
【解决方案2】:

您的连接字符串无效。您已将其设置为字符串“connectionstring”,它应该是完整格式的正确连接字符串:例如

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Persist Security Info=False;"

【讨论】:

  • 这是一个示例连接字符串。在我的真实文件中,我有正确的文件路径。
  • 可能是 UAC。这是一个访问数据库文件,如果它需要提升的权限,那么您执行此操作的进程将需要以管理员身份运行才能打开它。授予运行您的应用程序的进程/用户访问该文件的权限。以管理员身份运行 Visual Studio,然后打开您的项目并查看它是否可以测试该理论。
  • 感谢您的建议,但没有奏效。这令人沮丧。
猜你喜欢
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多