WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Visual C# + DB (http://www.wcm.at/forum/showthread.php?t=104623)

blauesau 05.08.2003 18:23

Visual C# + DB
 
In meiner leider sehr begrenzten Zeit, will ich nun versuchen, einfache Datenbankoperationen mit C# durchzuführen.

Ich denke da an eine Access-DB, da ich den MS SQL Server u.ä. noch nicht installiert habe und ich denke, dass es anfangs mit ner MDB übersichtlicher ist.

Meine Frage nun an alle die sich mit einer Visual.Net Programmiersprache auskennen: Was muss ich tun? Das wird jetzt so eine Trial & Error Expedition. Vielleicht gelingt es mir, vielleicht auch nicht. Da ich noch keine Lektüre habe, wäre es fein, wenn mir jemand kurz das PRozedere beschreiben könnte (Wie das mit den Adaptern und Connectors funktioniert usw...).

Ja, das wär fein... :)

blauesau 05.08.2003 18:41

Und eine speziellere Frage hätte ich auch schon: 1.) Wo stelle ich ein, welche Spalten im Datagrid angeziegt werden und deren Reihenfolge?

2.) Wie bekomme ich es überhaupt dazu, meine Daten anzuzeigen. Das Datagrid zeigt mir die Namen der Spalten in irgendeiner Reihenfolge, aber leider überhaupt keine(r der in Access eingegebenen) Daten an...

blauesau 06.08.2003 19:01

Code:

System.Data.OleDb.OleDbException: Parameter?_7 hat keinen Standardwert.
  at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
  at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
  at System.Data.Common.DbDataAdapter.Update(DataSet dataSet)

meint er, wenn ich in meinem DataGrid Änderungen an den bestehenden Daten vornehme. Füge ich etwas neues hinzu und gehe auf "Speichern" funktioniert es problemlos!

Zum Programm: Ich verwende ein DG, einen OleDbDataAdapter, eine OleDbConnection und ein DataSet.

Der Button "Speichern" ruft folgende Aktionen auf:

Code:

try
{
        DataSet changedData = dataSet11.GetChanges();
        if(changedData != null)
        {
                //int numRows =
                oleDbDataAdapter1.Update(changedData);
                dataSet11.AcceptChanges();
        }
        else
        {
                MessageBox.Show("Es sind keine Daten zum Speichern vorhanden!",
                "Keine Änderungen");
        }
}
catch(Exception ex)
{
        MessageBox.Show("Beim Aktualisieren der Datenbank ist ein Fehler "+
        "aufgetreten: " + ex.Message, "Fehler", MessageBoxButtons.OK,
        MessageBoxIcon.Error);
}

Also ich bin mit meinem Latein am Ende... :confused:

Kann mir von euch wer helfen?

*** edit ***

Also ich nehme ja an, dass es mit dem Primärschlüssel zusammenhängt?!
Im UpdateCommand-String ist der ominöse Parameter 7 "t_index", eben der Primärschlüssel (Autowert).

Hier das SQL-Satement:
Code:

UPDATE    tblDaten
SET              t_alter = ?, t_nachname = ?, t_plz = ?, t_strasse = ?, t_vorname = ?, t_wohnort = ?
WHERE    (t_index = ?) AND (t_nachname = ? OR
                      ? IS NULL AND t_nachname IS NULL) AND (t_plz = ? OR
                      ? IS NULL AND t_plz IS NULL) AND (t_strasse = ? OR
                      ? IS NULL AND t_strasse IS NULL) AND (t_vorname = ? OR
                      ? IS NULL AND t_vorname IS NULL) AND (t_wohnort = ? OR
                      ? IS NULL AND t_wohnort IS NULL)



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag