OLE DB Zugriff: C# auf MDB (Microsoft Access Datenbank) mit JET Treiber

Selektionsanweisung mit Parametern

public ArrayList getWeekPlan(string kapno, string woche)
{
   ArrayList weekPlan = new ArrayList();

   OleDbConnection conn = new OleDbConnection(
   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\pfad1\\db.mdb");

   try
   {

      conn.Open();
      OleDbCommand comm = new OleDbCommand();
      comm.Connection = conn;
      comm.CommandText = "SELECT [Datum],[KapazitätNo] "+
      "FROM [qry_TagesAnsichtMengen] WHERE [KapazitätNo]=@kapno "+
      "AND [DINKW]=@woche";

      comm.Parameters.AddWithValue("kapno", kapno);
      comm.Parameters.AddWithValue("woche", woche);
      
      OleDbDataReader reader = comm.ExecuteReader();
      
       while (reader.Read())
       {
          WeekPlanVO vo = new WeekPlanVO();
          vo.datum = reader.GetValue(0).ToString();
          vo.menge = reader.GetValue(1).ToString();
          weekPlan.Add(vo);
        }
   }
   catch (Exception e)
   {
     WeekPlanVO vo = new WeekPlanVO();
     vo.datum = e.Message;
     vo.menge = e.Message;
     weekPlan.Add(vo);
     return weekPlan;
   }
   finally
   {
      conn.Close();
   }
  return weekPlan;
}

Manipulationsanweisung ohne Parameter

public string updateDetailDate(DateTime neuesDatum, DateTime altesDatum, 
string neueKW, string alteKW, string kapazitaet, string material, string beleg)
{
  OleDbConnection conn = new OleDbConnection(
  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\pfad1\\db.mdb");

  
  try
  {
     conn.Open();
     OleDbCommand comm = new OleDbCommand();
     comm.Connection = conn;
     comm.CommandText = "UPDATE qry_Details_Akt SET [changed]=Now(), DinkW=" + neueKW + 
      ", WEWA_C='" + DateWrapper.GetServerDate(neuesDatum) + "', WEWA_C_OLD='" +
     DateWrapper.GetServerDate(altesDatum) + "' WHERE Beleg='" + beleg + 
     "'AND DinkW=" + alteKW + " AND Material='" + material + "' AND KapazitätNo=" + 
     kapazitaet;

     comm.ExecuteNonQuery();
  }
  catch (Exception e)
  {
      return e.Message+' '+e.StackTrace;
  }
  finally
  {
      conn.Close();
  }

  return "ok";
}

2 Gedanken zu „OLE DB Zugriff: C# auf MDB (Microsoft Access Datenbank) mit JET Treiber“

  1. OLE DB Zugriff: C# auf MDB (Microsoft Access Datenbank) mit JET Treiber.
    Mit Windows 7, 32 bit Version funktioniert der Datenbank-Zugriff. Mit der 64-bit Version jedoch nicht. WARUM NICHT ???

    1. Hallo!

      Der Microsoft Jet Treiber wurde von Microsoft nicht für 64 Bit weiterentwickelt. Hier sollte man einen anderen Treiber nutzen (z.B. ADO)

      Gruß Björn

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.