myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C# Access Datenbank (https://mygully.com/showthread.php?t=3251390)

kokru15 11.03.14 16:21

C# Access Datenbank
 
Hallo Leute.

Da ich neu in der Programmierung bin bräuchte ich etwas Hilfe bei einem Projekt, an dem ich momentan arbeite.
Es geht darum, dass ich durch einen Buttonclick eine Access Datenbank erstelle, mit einer Tabelle und zwei Spalten.
Eine Spate soll jeweils mit Zufallszahlen gefüllt werden.
Eine Datenbank habe ich schon erstellt, jedoch kann ich keine Tabellen erstellen, ohne dass ich einen Fehler bekomme.


So sieht mein Code momentan aus.
Wenn ich dann den entsprechenden Button klicke, bekomme ich die Fehlermeldung "Installierbares ISAM nicht gefunden".
Ich habe ein x64 Betriebssystem und in den Einstellungen von Visual Studios habe ich es auch schon auf x86 umgestellt, aber es geht trotzdem nicht.

Wäre dankbar über hilfreiche Antworten.

WilliamBeldum 11.03.14 19:14

Ich würde erstmal den if-part ändern und zwar in:

Code:

if(!File.Exists(@"C:\Users\myDb.mdb")) // entweder "C:\\Users\myDb.mdb" oder @"C:\Users\myDb.mdb"
{
  cat.Create(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\myDb.mdb;Jet OLEDB:Engine Type=5");
}

außerdem würde ich nicht ins Users Verzeichnis schreiben was man glaub ich nicht kann ohne Admin-rechte.

Desweiteren las mal den nachfolgenden Teil ganz weg:

Code:

ADODB.Connection connection = new ADODB.Connection();
OleDbCommand cmd = new OleDbCommand();

connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; DataSoure=c:\\meineDatenbank.mdb";
connection.Open(null,null,null,0);

cat.ActiveConnection = connection;

du machst eine Verbindung zu einer 2. Datenbank auf, dass aber irgendwie keinen Sinn macht.

Hab zwar eine Weile nicht mehr Programmiert und kann deshalb keine Garantie geben aber ich hoffe ich konnte trotzdem helfen.

burnedhead 12.03.14 15:01

Es gibt noch "einfachere Wege" (sobald man's einmal drauf hat, schmierts wie Butter)

Schau dir mal Linq oder Entity Framework (ADO.net) an...

Unter Visual Studio gibt es unter anderem Datasets, die das Leben um einiges vereinfachen.
Am besten erstellst du dir einen vorerst einen Ordner für das Dataset (Zur Übersichtlichkeit), rechtsklick auf den Ordner -> Neues Element -> Dataset (Der Wizard sollte iegntlich recht einfach sein.)

Unter Tabellen (bzw. Tables) wählst du dann einen TableAdapter, suchst die entsprechend Tabelle in deiner Datenbank und fügst die gewünschten Methoden (Geht hier auch per Mausklick) hinzu.

meineTabelleTableAdapter = new meineTabelleTableAdapter();
List<(Typ, string, int wie auch immer)> Tabelle = new List<(Typ)>()
Tabelle = meineTabelleTableAdapter.HoleMirAlleDaten().ToList ();

Gehstock 12.03.14 18:31

Code:

        public void MakeDB()
        {
            ADOX.Catalog cat = new ADOX.Catalog();
            string dB = "D:\\myDb.mdb";
            if (!File.Exists(@dB))
            {
                cat.Create(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dB + ";Jet OLEDB:Engine Type=5");
            }
            ADOX.Table table = new ADOX.Table();
            table.Name = "Tagesdurchschnittstemperatur";
            table.Columns.Append("Temperatur", ADOX.DataTypeEnum.adVarWChar, 50);
            table.Columns.Append("Tag", ADOX.DataTypeEnum.adVarWChar, 50);
            cat.Tables.Append(table);
        }

Achte darauf das Du Schreibrechte in dem Ordner hast

Malebime 14.03.14 09:06

Zitat:

Zitat von kokru15 (Beitrag 25408048)
Hallo Leute.

Wenn ich dann den entsprechenden Button klicke, bekomme ich die Fehlermeldung "Installierbares ISAM nicht gefunden".
Ich habe ein x64 Betriebssystem und in den Einstellungen von Visual Studios habe ich es auch schon auf x86 umgestellt, aber es geht trotzdem nicht.

Wäre dankbar über hilfreiche Antworten.

Hallo kokru15,

Was hast du denn unternommen, um das Problem zu lösen?
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
Und gleich der erste Treffer... da geht es zwar um Excel aber es ist das gleiche Problem.
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Das sollte dir helfen dein Problem zu lösen!

Gruß,
Malebime

burnedhead 25.03.14 21:06

Zitat:

Zitat von HababaX (Beitrag 25411335)
C# und Entity Framework oder Linq2SQL sind nicht möglich. Mir ist für EF kein funkt. provider bekannt.

Nur ungefähr richtig...

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

burnedhead 27.03.14 19:33

Der wird vom Studio in die config geschrieben. Dementsprechend kann man eigene hinzufügen. Ist halt Stilsache und Verwendungszweckabhängig....


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.