iTrekk Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 Hallo ! Ich habe meine erste Übungsaufgabe erhalten in meiner Ausbildung zum FIAE. Ziel ist es eine Funktionierende Kundenverwaltung zu erstellen basierend auf einer Access Datenbank mit C# und einer WPF Oberfläche. Ich beisse mir jetzt schon seit dem 01.08 die Zähne daran aus, da ich nur sehr geringe Vorkenntnisse habe. Ich finde einfach kein vernünftiges Tutorial was mir erklärt wie ich diese Aufgabe zu meistern habe und ich es gleichzeitig verstehe. Ich hoffe hier auf Tipps und Tricks wie ich diese Sache am besten angehe. Mein Ausbilder möchte das ich durch Selbstrecherche dieses Projekt erstelle und deshalb hab ich auch nicht die Möglichkeit im Betrieb zu fragen. Anforderungen: Kunden hinzufügen Kunden löschen Kunden bearbeiten Daten exportieren /importieren (Keine Vorgabe für das Dateiformat) Vielen Dank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
a3quit4s Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 und wie sieht dein bisheriger Ansatz aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 9. August 2012 Autor Teilen Geschrieben 9. August 2012 Klappt garnichts Also hab keinen wirklichen Ansatz Hab eine Access Datenbank erstellt und weiß nicht wie ich die in ein WPF Datagrid bekomme und wie ich dann die Datenbank ansteuern kann :/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
a3quit4s Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 Dann fang doch mal mit der Recherche an, wie man Datenbanken in WPF anspricht und wie man eine Accesstabelle einbindet. Schlagwort: ADO.NET Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 9. August 2012 Autor Teilen Geschrieben 9. August 2012 Das ansprechen hab ich hier schon versucht: namespace ConsoleApplication4 { class Program { static void Main(string[] args) { Csharp_Access_Datenbank(); } public static void Csharp_Access_Datenbank() { OleDbConnection con = new OleDbConnection( @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\tpr\Documents\Kundendaten.accdb"); con.Open(); string strSQL = "SELECT * FROM Kundendaten"; string insertStatement = "INSERT INTO 'Kundendaten' " + "([Name],[Nachname],[straße],[Hausnummer],[Postleitzahl],[Ort]) " + "VALUES (Priwe,Tim,Vahrenort,6,44388,Dortmund)"; string updateStatement = "UPDATE Kundendaten SET Nachname = ''Test'' WHERE Nachname = ''Priwe''"; string deleteStatement =" DELETE [Kundendaten.*] FROM Kundendaten WHERE Vorname=Tim"; OleDbCommand cmdread = new OleDbCommand(strSQL, con); OleDbCommand cmdinsert = new OleDbCommand(insertStatement, con); OleDbCommand cmdupdate = new OleDbCommand(updateStatement, con); OleDbCommand cmddelete = new OleDbCommand(deleteStatement, con); cmdinsert.ExecuteNonQuery(); cmdupdate.ExecuteNonQuery(); cmddelete.ExecuteNonQuery(); OleDbDataReader dr = cmdread.ExecuteReader(); while (dr.Read()) { Console.WriteLine(dr[0].ToString()); } dr.Close(); con.Close(); } Klappt aber nicht :/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gurki Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 WAS klappt denn nicht? So wie ich das jetzt sehe baust Du eine Verbindung auf, suchst nach Datensätzen, Updatest die DB und dann löscht du den Datensatz wieder... Das alles in einer Methode. Mach mal mehrere Methoden z.b. "SelectFromDb(), DeleteFromDb(), InsertIntoDb(), UpdateDb(), ViewData()" und dann ist es noch ein großer Vorteil, wenn du dir einen Brakepoint setzt und jeden Schritt einzeln durch das Programm gehst! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
127.0.0.1 Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 ich bin nicht programmierer, aber meines wissens steht am anfang jeder programmieraufgabe solche sachen wie struktogramm, pap, klassendesign, uml usw. wie sieht es damit aus? hast du sowas gemacht oder programmierst du erst mal los und schaust, wie weit du kommst.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gurki Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 Ich glaube das ist für den Anfang "to much" oder? Wie soll er ein Struktogramm oder ein Klassendiagramm malen, wenn er davon noch gar keine Ahnung hat? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Max_Power Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 Chef sagt doch, dass er sich in die themen reinlesen soll, dann kann er sich auch in Struktogramme etc. reinlesen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
127.0.0.1 Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 so ein pap muss ja erst mal nicht normgerecht sein. aber man muss sich doch im vorfeld mal gedanken machen, wie die software aufgebaut ist und welche module man so braucht und was dieeinzelnen module so tun sollen.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gurki Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 macht man das so? ich sehe hier keinen entwickler der erstmal groß was malt mal abgesehen vom "großen planen" neuer funktionen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mepp Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 (bearbeitet) string insertStatement = "INSERT INTO 'Kundendaten' " + "([Name],[Nachname],[Straße],[Hausnummer],[Postleitzahl],[Ort]) " + "VALUES (Priwe,Tim,Vahrenort,6,44388,Dortmund)"; string updateStatement = "UPDATE Kundendaten SET Nachname = ''Test'' WHERE Nachname = ''Priwe''"; string deleteStatement =" DELETE [Kundendaten.*] FROM Kundendaten WHERE Vorname=Tim"; Die SQL Statements dürften soweit ich weiss auch in ACCESS nicht in der Form funktionieren. Textattribute müssen in den Statements auch immer als solche angegeben werden ('einfache Anführungszeichen'). Hier mein Vorschlag: string insertStatement = "INSERT INTO Kundendaten ([Vorname],[Nachname],[Straße],[Hausnummer],[Postleitzahl],[Ort]) " +" VALUES ('Tim', 'Priwe', 'Vahrenort', '6', '44388', 'Dortmund') "; string updateStatement = "UPDATE Kundendaten SET Nachname = 'Test' WHERE Nachname = 'Priwe' "; string deleteStatement =" DELETE FROM Kundendaten WHERE Vorname = 'Tim' "; Ich weiss zwar nicht wie du die Datentypen in der Accesstabelle angegeben hast aber Hausnummer und PLZ sollten Text sein. Die Reihenfolge der VALUES hast du in der INSERT Anweisung vorgegeben. Anscheinend aber anschliessend Name und Nachname vertauscht. Desweiteren heisst die erste Spalte in deinem INSERT-Statement "Name", im DELETE-Statement versucht du aber auf die Spalte "Vorname" zuzugreifen. Wie heisst die Spalte denn nun? (In meinem Beispiel bin ich einfach Mal davon ausgegangen, dass Vorname richtig ist) Bearbeitet 9. August 2012 von mepp Spalte Name/Vorname Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 10. August 2012 Autor Teilen Geschrieben 10. August 2012 Danke hat funktioniert Jetzt muss ich das ganze nur noch in WPF reinkriegen wo die Daten angezeigt werden Lieber ne Listbox, Grid oder Datagrid? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gurki Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 datagrid ist für datenbanken Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 10. August 2012 Autor Teilen Geschrieben 10. August 2012 ja hab ich irgendwie nicht hinbekommen, versuche es jetzt mit einem Listview Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 10. August 2012 Autor Teilen Geschrieben 10. August 2012 public MainWindow() { InitializeComponent(); displaydata(); } void displaydata(){ OleDbConnection con = new OleDbConnection( @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\tpr\Documents\Kundendaten.accdb"); con.Open(); string strSQL = "SELECT * FROM Kundendaten"; OleDbCommand cmd = new OleDbCommand(strSQL, con); OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); OleDbDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { listView1.DataContext = dt.DefaultView; } dr.Close(); con.Close(); cmd.ExecuteNonQuery(); Soweit hab ich das jetzt und die Datenbank wird auch gelesen (Mit Messagebox getestet) Nur warum will er mir die nicht in der Listview anzeigen? Fehler zeigt er folgenden: 'The invocation of the constructor on type 'KundenverwaltungNrx.MainWindow' that matches the specified binding constraints threw an exception.' Line number '3' and line position '9'. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mepp Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 Schau da Mal: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 10. August 2012 Autor Teilen Geschrieben 10. August 2012 mh kann ich nicht soo viel mit anfangen leider :/ ist VB und ich habe eine Access Datenbank als Quelle Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gurki Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 VB.Net ist doch sehr ähnlich zu C# von der Syntax her. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 VB.Net ist doch sehr ähnlich zu C# von der Syntax her. Das solltest du nicht in physikalischer Nähe zu einem C# Entwickler sagen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mepp Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 Trotzdem. Die Datatable ist ja bereits gefüllt. Daher ist es egal wie bzw. woher. Die Eigenschaften und Methoden der Objekte sind auch die gleichen in C#. Es sollte egal sein, ob ein Tutorial in C# oder VB.Net ist. Lässt sich alles leicht übertragen. Vorteil wenn man ein Tutorial in VB sieht und das ganze erst nach C# portieren muss: Man versteht eher worum es geht und wie die Dinge bewerkstelligt werden, da ein einfaches copy&paste nicht möglich ist (Bei Videos eh nicht, abschreiben geht aber dann auch net.) VB ist auch nur ein unliebsamer Dialekt im .NET Framework. Verhält sich ähnlich wie Bayrisch/Schwäbisch zu Deutsch ;-) Man muss es verstehen können, deswegen aber noch lange nicht selbst nutzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 Schnellstart (Entity Framework) Lesen und lernen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 12. August 2012 Teilen Geschrieben 12. August 2012 Das solltest du nicht in physikalischer Nähe zu einem C# Entwickler sagen Als VB.NET Entwickler, sage ich, dass ein C# Entwickler besser nicht hochnäsig die Nase rümpft in physikalischer Nähe...... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
iTrekk Geschrieben 13. August 2012 Autor Teilen Geschrieben 13. August 2012 Ich habe es jetzt soweit hinbekommen, dass die Daten im Listview angezeigt werden und ich in einem Formular im Programm Daten hinzufügen kann. Jetzt hab ich schon wieder das nächste Problem. Ich brauch einen Befehl dem ich den "Hinzufügen" Button zuweisen kann der das Listview aktualisiert damit es den neuen Datensatz direkt im Programm anzeigt... Gibt es da eine simple Möglichkeit? Der hinzufügen Button befindet sich in einem anderen Fenster falls das wichtig ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kendal_ac Geschrieben 14. August 2012 Teilen Geschrieben 14. August 2012 Mein Tipp sind die Lernvideos von Galileo Computing "Visual C# 2010" sowie das Buch Visual C# 2010. Wenn du sehr wenig kenntnisse hast würde ich mich zu allererst mit dem Buch "Programmieren Lernen" von Galileo Computing befassen. Hab auch meine Ausbildung als FIAE am 1.8.2012 angefangen mit keine Vorkenntnissen somit habe ich mir das Buch "Programmieren Lernen" angelegt nach dem Buch konnte ich belieb in einer Programmiersprache Programmieren also bzw. ist es mir leichter gefallen. Zurzeit lerne ich .Net 4.0 + C#2010. mit dem Handbuch von Microsoft Press. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.