Laden...

[gelöst] Access 2000 und nur Probleme

Erstellt von King-Malkav vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.092 Views
King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 16 Jahren
[gelöst] Access 2000 und nur Probleme

verwendetes Datenbanksystem: Access2000

Hallo, ich habe folgendes Problem, ich habe eine CheckedListView das ich mit Daten aus einer AccessDB füllen lasse. Je nach Werten in der Tabelle werden die Haken gesetzt. Das funktioniert auch soweit ganz gut. Wenn ich aber jetzt in meiner Zuordnungstabelle Werte ändere, erkennt das mein C# Programm nicht und es werden wieder die gleichen Haken gesetzt. Wenn ich mein Programm neustarte funktioniert es.

Warum wird mein Dataset, mit alten Daten die gar nicht mehr existieren, gefüllt?
Arbeite normalerweiße nur mit MSSQL und nicht mit Access und bin etwas ratlos.

Hier auch noch ein wenig Code:


 private void button2_Click(object sender, EventArgs e)
        {

            lade_zutaten();

            string select = "SELECT ZutatID from t_pizzaordnung where PizzaID = 1";

            OleDbDataAdapter da = new OleDbDataAdapter(select, mycon);
            DataSet ds = new DataSet();

            mycon.Open();
            da.Fill(ds);
            mycon.Close();
            clearclb();
         

            for (int i = 0; i < clb_zutaten.Items.Count; i++)
            {
                DataRowView zutatx = (DataRowView)clb_zutaten.Items[i];
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if (dr["ZutatID"].ToString() == zutatx.Row[0].ToString())
                    {
                        clb_zutaten.SetItemChecked(i, true);
                    }
                    
                        
                    
                }
            }



            
        }

Mein Connectionstring sieht folgendermaßen aus:
OleDbConnection mycon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=pizzadrive.MDB");

Vielen Dank im voraus...

4.506 Beiträge seit 2004
vor 16 Jahren

Hallo King-Malkav,

Wenn ich aber jetzt in meiner Zuordnungstabelle Werte ändere

Wie änderst Du die Werte? In Access direkt? Wenn Du über OLE auf die Datenbank zugreifst, dann kann ich mir gut vorstellen, dass hier das System ein Cache verwendet, wo die "alten" Daten vorgehalten werden.

Wenn Du testweise die Connection nach Änderungen mal schließt und wieder neu aufmachst, werden dann immer noch die inkorrekten Daten angezeigt?

SQLServer arbeitet da sicherlich anders. Insbesondere wenn Du über den SQLConnector im .NET Framework darauf zugreifst. Access hat ja z.B. auch keine Möglichkeit Trigger zu implementieren.

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 16 Jahren

Hallo King-Malkav,

Wenn ich aber jetzt in meiner Zuordnungstabelle Werte ändere

Wie änderst Du die Werte? In Access direkt? Wenn Du über OLE auf die Datenbank zugreifst, dann kann ich mir gut vorstellen, dass hier das System ein Cache verwendet, wo die "alten" Daten vorgehalten werden.

Wenn Du testweise die Connection nach Änderungen mal schließt und wieder neu aufmachst, werden dann immer noch die inkorrekten Daten angezeigt?

SQLServer arbeitet da sicherlich anders. Insbesondere wenn Du über den SQLConnector im .NET Framework darauf zugreifst. Access hat ja z.B. auch keine Möglichkeit Trigger zu implementieren.

Grüße
Norman-Timo

Die Connection wird ja jedesmal geschlossen und neu geöffnet. Ich habe die Daten direkt in Access geändert, also gab es auch kein Zugriff auf die Datei.

Das ist eine relativ simple Anwendung und ich finde es eigentlich unnötig den SQL2005 Express oder ähnliches deswegen zu installieren...

4.506 Beiträge seit 2004
vor 16 Jahren

Hallo King-Malkav,

Die Connection wird ja jedesmal geschlossen und neu geöffnet.

Stimmt, das hatte ich im Quellcode tatsächlich überlesen. Schließt Du Access nach den Änderungen, oder lässt Du die Anwendung offen (vielleicht verwendet Access einen Cache?). -> Es reicht wahrscheinlich auch entsprechende Access Tabelle zu schließen (das MDI Fenster), denn dann fragt Access ja, ob Änderungen gespeichert werden sollen.

Ansonsten hätte ich keine Erklärung dafür, zumindest in der ReleaseVersion kann ich bei meinen Anwendungen Änderungen in Access vornehmen, welche dann korrekterweise von meiner Anwendung direkt eingelesen werden können (das ist wohl auch das gängigste Testverfahren).

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 16 Jahren

Ihr dürft mich blöd schimpfen!!!!

Ich hab die Falsche DB geändert. Visual Studio kopiert ja die DB in das Bin Verzeichnis! Und erst nach dem erneuten kompilieren wird die geänderte Access DB in das Bin Verzeichnis kopiert!

Ich bin so doof!! Zeit nach Hause zu gehen.

Trotzdem danke für den Denkanstoß!

MFG

4.506 Beiträge seit 2004
vor 16 Jahren

Hallo King-Malkav,

willkommen im Deppenclub: ich denke genau das ist das, was jedem und immer wieder mal passiert.

Mach Dir nix draus, genau denselben Fehler wirst Du so schnell nicht wieder machen 😉

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”