Zum Inhalt springen

C# ALTER TABLE auf ACCESS


Loewchen0507

Empfohlene Beiträge

Hi,

ich hoffe Ihr könnt mir helfen.

Ich möchte gerne während der Laufzeit meines Programmes eine Änderung in einer Tabelle einer Access Datenbank vornehmen.

Dabei bin ich wie folgt vorgegangen:

1. Verbindung zur Datenbank herstellen

2. AlterTable Statement

Meine Umsetzung wie folgt:


OleDbConnection CobraConn;


CobraConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Properties.CoWi.Default.CobraDB;

CobraConn = new OleDbConnection(CobraConnStr);

CobraConn.Open();


CobraAlterCommand = new OleDbCommand("ALTER TABLE addresses ADD COLUMN mesoprim TEXT(50);", CobraConn);

CobraAlterCommand.CommandType = CommandType.Text; 

CobraAlterCommand.ExecuteNonQuery();

Vielleicht gehe ich die ganze Sache ja auch komplett falsch an??? Dennoch hoffe ich, dass Ihr mir helfen könnt.

LG Loewchen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

genau das ALTER TABLE Statement das ich im Code habe läuft in der Access.mdb

Ich habe auch schon versucht:

CobraAlterCommand.Connection.ChangeDatabase("DemoCoWiTest.mdb");
und:
CobraConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Properties.CoWi.Default.CobraDB + ";Exclusive=1;";

also mit Exclusive=1; aber irgendwie klappt das nicht.

LG Loewchen

Link zu diesem Kommentar
Auf anderen Seiten teilen

das Problem war, dass ich vor dem Open das gemacht habe... schussligkeit aber jetzt bekomme ich diese Fehlermeldung:

kein installierbares ISAM gefunden wenn ich den Code benutze:


                    CobraConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Properties.CoWi.Default.CobraDB + ";Exclusive=1;";

                    CobraConn = new OleDbConnection(CobraConnStr);

                    CobraAlterCommand = new OleDbCommand("ALTER TABLE addresses ADD COLUMN mesoprim TEXT(50);", CobraConn);

                    CobraAlterCommand.CommandType = CommandType.Text;

                    CobraConn.Open();

                    CobraAlterCommand.Connection.ChangeDatabase("DemoCoWiTest.mdb");

                    CobraAlterCommand.ExecuteNonQuery();

mega komisch... lasse ich die zeile
CobraAlterCommand.Connection.ChangeDatabase("DemoCoWiTest.mdb");

weg, dann kommt wieder: Datenbank schreibgeschützt.

LG Loewchen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Loewchen, bin leider kein Accessspezi, aber ein ISAM Fehler deutet darauf hin, dass etwas beim Multiuserzugriff schief geht, z.B. dass die DB schon geöffnet ist, oder bearbeitet wird.

In Deinem Code hast Du "Exclusive=1" geschrieben, evtl. gibt es dafür noch andere Werte.

mach mal hinter dein ExecuteNonQuery() noch einen Aufruf von Close().

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi an alle,

also zuerstmal vielen dank für die ganzen Anregungen... ich habe die Lösung gefunden... :D und entschuldigt die späte Antwort... aber mich hatte zwischenzeitlich die Sommergrippe erwischt :(

Wie bin ich vorgegangen:

ich habe mir eine neue Applikation gebaut und ein dort per Knopfklick das Alter Table Statement ausgeführt und es funktionierte... dann bin ich auf die Suche gegangen... wo liegt der unterschied... der Rechner ist der Gleiche und die Installationen damit auch... also konnte es nur an den beiden Applikationen liegen... ja und da hatte ich auch schon den größten unterschied... das eine ist eine Applikation und das andere ein Dienst... dann irgendwann kam ich mal auf die Idee die Anmeldungen am SQL Server zu überprüfen und da war es auch schon... Ich bin an meinem Rechner immer als User einer Domain angemeldet... mein Service allerdings hat sich immer mit local angemeldet... und da war es.. ich habe dann für den Service die Anmeldungen geändert und siehe da, es funktioniert... Mein lokaler Benutzer hatte keine Vollzugriffsrechte auf die mdb und durfte daher nicht ändern, während ich mit dem Benutzer einer Domain diese Rechte besaß... dumm dumm dumm ... :upps das Leben kann so einfach sein...

Also zusammenfassend gesagt lag es an den Rechten des Benutzers mit denen sich der Dienst angemeldet hat... ändert man die Anmeldedaten oder die Rechte des Benutzers funktioniert alles einwandfrei...

Trotzdem danke an Euch alle für Eure Unterstützung und ich freue mich shcon auf meine nächste Aufgabe ("Problem") die ich mit Euch zusammen erörtern darf.

LG Loewchen :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...