[C#] Problem beim mehreren Zugriff auf OleDb Datenbank

corey

Ensign
Registriert
März 2005
Beiträge
254
Hi all,

Ich habe ein Problem mit meinem Datenbankzugriff.

Jedes mal wenn ich mehrere Connections nacheinander (!) auf die Access Datenbank eröffne, wird nach einer evtl. zufälligen Zeit eine OleDbException geworfen, mit der Message : Unbekannter Fehler.

Ich bin etwas ratlos.

Könnt Ihr mir helfen?

Vielen Dank...

Gruss

corey
 
Zeig mal den bitte Code für den Zugriff her und den ConnectionString, vllt sehe ich ja was.

André
 
Ok, hier die Methoden, bei welchem diese OleDb Exception entsteht:

---> Connection Initialisierung

Code:
/// <summary>
		/// Initialisierung der Verbindung
		/// </summary>
		private void InitializeConnection()
		{
			//Connection initialisieren
			try
			{
				if(cnn.State != ConnectionState.Open || cnn == null)
				{
					cnn = connectionConfiguration.BuildOleDbConnectionObject();
					cnn.Close();
					cnn.Open();
				}
			}
			catch(Exception oex)
			{
				logger.Warn("Fehler bei der Initialiserung des Connectionobjektes: " + oex.Message);
				//throw new Exception(oex.Message);
			}

		}


---> Bilden des Connection Objektes

Code:
/// <summary>
		/// Buildet aus den aktuellen Felder ein OleDBConnectionObjekt
		/// </summary>
		/// <returns>OleDB Connection aus den aktuellen Felder der Klasse</returns>
		public OleDbConnection BuildOleDbConnectionObject()
		{
			//Lädt die aktuellen Connectionproperties
			LoadConnectionPropiertiesRegistry();
			
			//Connection zurückgeben
			return new OleDbConnection(
				"Provider=Microsoft.Jet.OleDb.4.0" + 
				";Data Source=" + databasePath + 
				";User Id=" + userName + 
				";Password=" + userPwd + 
				";Jet OLEDB:Database Password=" + databasePwd);
		}


---> Select Abfrage
Code:
/// <summary>
		/// Holt alle Einträge eines bestimmten Tages aus der DB
		/// </summary>
		/// <param name="Date">Datum</param>
		/// <returns>Alle Einträge als DataSet</returns>
		public DataSet GetDayItems(DateTime Date)
		{			
			try
			{	
				
				InitializeConnection();								
				
				OleDbDataAdapter da = new OleDbDataAdapter(
					"SELECT * FROM ACalendarItems WHERE DateItem LIKE '" + Date.ToString("dd.MM.yyyy") + "%'",cnn);
				DataSet ds = new DataSet();
				da.Fill(ds);
				//cnn.Close();
				return ds;
			}
			catch(OleDbException ex)
			{
				logger.Error("Fehler beim Abfragen der Daten ("  + Date.ToString() + 
					") : " + ex.Message);

				throw new Exception(ex.Message, ex.InnerException);
			}		
		}


Vielen Dank & Gruss

Corey
 

Ähnliche Themen

Zurück
Oben