verwendetes Datenbanksystem: <Access>
Hallo Forum,
ich hoffe, hier einige Anregungen und auch Hilfe zu erhalten.
Seit zwei Wochen beschäftige ich mich mit C#, habe mir das Entwicklerbuch sowie eine DVD gekauft. Leider beantwortet das nicht meine Fragen, denn ich stehe vor folgender Herausforderung. Bislang habe ich über Excel eine Verwaltungsdatenbank programmiert (Excel als Frontend, die auf eine andere Exceltabelle als Datentabelle zugreift).
Dies soll nun in einer C# Anwendung geschehen.
Die Methoden selber machen mir keine Kopfschmerzen, aber wie ich über C# folgendes realisieren kann. Ich erwarte natürlich keine schnelle Lösung, sondern welchen Ansatz ich verfolgen sollte.
Da stehe ich nun voll auf dem Schlauch, denn in Excel ist ja ein Leichtes, Datensätze anzeigen zu lassen und Rechtsklich-Ereignisse etc zu definieren.
Wie kann ich in C# vorgehen? Es gibt soviele verschiedene Möglichkeiten. Ameinfachsten wäre es, die Excel Tabelle in eine Access DB zu importieren und auf diese zuzugreifen. Nur gibt es kaum Literatur zum Thema Access und C# und ich habe bislang nur den Code gefunden, eine Access DB zu öffnen und eine Schleife über Datensätze. Aber wie kann ich diese in einem Formular anzeigen lassen, wie kann Änderungen zurückschreiben, wie kann ich einen Rechtsklich Ereignis auf einen Datensatz realisieren etc etc.
Bin für alles dankbar, was ihr mir schreibt.
Hallo nfb503,
was du machen moechtest wird als CRUD bezeichnet.
Hier ein keines Bsp. mit XML und WPF.
http://www.dotnetspark.com/kb/1704-crud-operation-on-xml-db-wpf-application.aspx
Gruesse,
Manullino
Wenn Du schon Access benutzt, lad Dir Deine Datensätze in ein Dataset und Weise das Dataset einem Datagrid Control zu. Schon bekommst Du die Datensätze angezeigt.
Zum Zugriff auf eine Access-Datenbank solltest Du mal nach ADO.NET googeln, da gibt es massig Tutorials. Im Übrigen wird der DB-Zugriff über ADO standardisiert, so dass Du je nachdem ob Du Access, SQL oder was auch immer verwendest, meist nur noch den ConnectionString entsprechend anpassen musst.
"It is not wise to be wise" - Sun Tzu
Hallo,
Version Access gefällt mir für den Anfang besser, XAML ist noch etwas zu hoch für mich, befürchte ich.
Kannst du mir Beispiele oder einen Link zu einem Beispielcode geben, denn ehrlich gesagt verstehe ich nur Bahnhof(Dataset, Datagrid Control). Ich wäre ja schon zufrieden, wenn ich die Datensätze, die ich ermittele, irgendwo anzeigen lassen könnte. Das ist alles, was ich bislang habe. Da kann ich nur lesen (nicht zurückschreiben) und ich kann es auch nicht anzeigen lassen.
Wenn ich noch eine where Klausel einfüge, sollte jeder Datensatz irgendwo erscheinen.
class Access
{
public void Csharp_Access_Datenbank()
{
OleDbConnection con = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=P:\Orientation.mdb");
con.Open();
string strSQL = "SELECT * FROM data1";
OleDbCommand cmd = new OleDbCommand(strSQL, con);
OleDbDataReader dr = cmd.ExecuteReader();
//dr ist die Zeile, der Wert in spitzen Klammern die Spalte!
while (dr.Read())
{
//MessageBox.Show(dr[1].ToString());
}
dr.Close();
con.Close();
}
}
Ist ja klar, dass Du nur Bahnhof verstehst, der Klassenname sagt ja auch nicht aus, wie man damit arbeiten musst. Hast Du denn mal nach den genannten Stichworten gesucht ? Oder willst Du jetzt eine fertige Lösung haben ?
"It is not wise to be wise" - Sun Tzu
Hallo nfb503,
da gibt es viele Möglichkeiten.
Schau Dir erstmal die Grundlagen an im Openbook Visual C# (Link links bei Resourcen) und in meinem kleinen Text (Link in Signatur).
Dann vielleicht noch Lightswitch : http://www.microsoft.com/germany/visualstudio/products/lightswitch/default.aspx
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Da Signaturen für nicht angemeldete Gäste nicht sichtbar sind; Bernd meinte:
Workshop: Datenbanken mit ADO.NET
Vielen Dank für die Links. Das ist auch in meinem Buch ausführlich beschrieben, aber nicht wie man das schön anzeigen und bearbeiten kann.
Mein Problem ist weniger auf die Datenbank zuzugreifen als die Inhalte darzustellen und Interaktion mit dem User zu ermöglichen.
Die Beispieldatei bzgl xaml war doch sehr gut, ich versuche anhand dessen mich einzuarbeiten.
Jetzt habe ich hier einen DataGrid, dort werden alle Datensätze aufgelistet. Nun würde ich gerne bei Doppelklick darauf etwas in die DB zurückschreiben. Und hier hapert es.
Wie kann ich bei einem DataGrid die Elemente eines ausgewählten Datensatzes ermitteln? Es wird ja z.B pro Datensatz angezeigt: Name, Nummer, ID.
Klicke ich nun doppelt auf einen Datensatz, möchte ich von diesem den Namen ermitteln. So etwas wie DataGrid.Value oder so gibt es nämlich nicht.
Kann mir hierbei jemand helfen?