【问题标题】:ODBC Insert not working on Access DatabaseODBC 插入在 Access 数据库上不起作用
【发布时间】:2017-08-01 13:39:27
【问题描述】:

现在我将 Access 数据库用作虚拟 ODBC 数据库(因此在开发过程中我不会损坏任何有价值的信息),并且在向其中插入记录时遇到了麻烦。

我可以很好地从这个数据库中读取并且插入命令通过,但是当我尝试读回记录时它不存在

    using (OdbcConnection conn = new OdbcConnection(@"Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=" + Directory.GetCurrentDirectory() + @"\Setup DB.accdb"))
    {
        conn.Open();
        int ID;

        //Autoincrement doesn't work, so new ID is LASTID++
        using (OdbcCommand query = new OdbcCommand("SELECT MAX(ID) AS LASTID FROM Setups", conn))
        {
            using (var reader = query.ExecuteReader())
            {
                reader.Read();
                ID = int.Parse(reader["LASTID"].ToString()) + 1;
            }
        }

        transaction = conn.BeginTransaction();
        using (OdbcCommand insert = new OdbcCommand("INSERT INTO Setups (ID, PartNumber,LeafSide,Width) VALUES (?, ?, ?, ?)", conn))
        {
            //If ID is left out ^ then an error is thrown about the ID being null
            insert.Parameters.Add("@ID", OdbcType.Int).Value = ID;
            insert.Parameters.Add("@PartNumber", OdbcType.VarChar).Value = PartNo;
            insert.Parameters.Add("@LeafSide", OdbcType.VarChar).Value = AorB;
            insert.Parameters.Add("@Width", OdbcType.Double).Value = Width;

            insert.Transaction = transaction;

            //This temp shows that 1 record is modified
            int temp = insert.ExecuteNonQuery();

            transaction.Commit();
        }
    }
    //try catch and rollback removed for display

我有一种感觉,我错过了一些非常简单的东西,但对于我的生活,我无法弄清楚它是什么。

【问题讨论】:

    标签: c# sql wpf odbc


    【解决方案1】:

    原来我遗漏了一些简单的东西。由于我使用 Directory.GetCurrentDirectory() + @"\Setup DB.accdb" 作为我的位置,因此我正在修改 /bin/Debug 文件夹中的数据库,而不是我正在检查的那个。

    感谢this answer 让我意识到这一点:

    如果您的 c# 代码执行时没有任何异常,它也会更新数据库,可能您在 ConnectionString 中使用了 AttachDbFilename=|DataDirectory|\yourDB.mdf 意味着更新的数据库位于子文件夹 BIN\DEBUG 文件夹中你的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多