2017-08-01 21 views
0

現在、私はダミーのODBCデータベースとしてAccessデータベースを使用しています(開発中に貴重な情報に損害を与えません)。私はこれから読み取ることができますODBCの挿入がAccessデータベースで機能していない

はうまくDBおよびInsertコマンドは通過しますが、私は戻ってレコードを読み取るしようとすると、それは私が、私は本当に何かが欠けてる気がするが

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 

ではありませんシンプルですが、私の人生のために、私はそれが何であるか把握できません。

答えて

0

私は単純なものが欠けていたことが判明しました。私はDirectory.GetCurrentDirectory()+ @ "\ Setup DB.accdb"を自分の場所として使用していたので、私がチェックしていたディレクトリの代わりに/ bin/DebugフォルダのDBを修正していました。あなたのConnectionStringで\ yourDB.mdf | DataDirectoryの|おそらくあなたがAttachDbFilename =を使用しているあなたのC#のコードは、例外なしで実行した場合、それはあまりにもデータベースを更新

、:私はこれを実現させるためのthis answer

感謝更新されるデータベースがプロジェクトのサブフォルダBIN \ DEBUGフォルダにあることを意味します。

関連する問題