ickebins1989 Geschrieben 19. Februar 2009 Geschrieben 19. Februar 2009 Hallo zusammen. Hatte schonmal nen Beitrag verfasst in dem ich erklärt habe das ich Praktikant bin usw. und völlig neu in der C# Programmierung bin. Nun hat der Chef sich mit mir zusammen gesetzt und mit mir ein Projekt überlegt. Das Projekt ist an eine Datenbank verknüpft (Acces). Habe nun folgenden Quelltext: private string m_strConn; // ------------------------------------------------------------------- // Konstruktor // ------------------------------------------------------------------- public frmMain() { InitializeComponent(); // -------------- Verbindungsstring m_strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Zulass2002.MDB"; } // ------------------------------------------------------------------- // Programm beenden // ------------------------------------------------------------------- private void beendenToolStripMenuItem_Click(object sender, EventArgs e) { Close(); } // ------------------------------------------------------------------- // FormLoad // ------------------------------------------------------------------- private void frmMain_Load(object sender, EventArgs e) { try { //OleDb-Provider OleDbDataAdapter da = new OleDbDataAdapter("SELECT * from Zulassungen ORDER BY ZulassungsNr;", m_strConn); DataTable ds = new DataTable(); // Fill Speichert die Abfrage in einer DataTable da.Fill(ds); dGVZulassung.DataSource = ds; dGVZulassung.Columns["ID"].Visible = false; dGVZulassung.Columns["ZulassungsNr"].ReadOnly = true; dGVZulassung.Columns["Gültig bis"].ReadOnly = true; for (int i = 0; i < dGVZulassung.RowCount; i++) { if (dGVZulassung["ZulassungsNr", i].Value.ToString() == "Z-43.11-116") { dGVZulassung.Rows.Selected = true; dGVZulassung.FirstDisplayedScrollingRowIndex = i; break; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Pro.Tis.Net"); } Der Chef meinte, ich soll versuchen den Quelltext zu verstehen. Hab aber total die Probleme damit. Hab zwar hier auch ein Buch liegen, bin auch im msdn und schaue nach. Vielleicht kann mir jemand von Euch ein wenig unter die Arme greifen. Und mir die einzelne Befehle ein wenig erläutern:-) Zitieren
TDM Geschrieben 19. Februar 2009 Geschrieben 19. Februar 2009 private string m_strconn; // ------------------------------------------------------------------- // konstruktor // ------------------------------------------------------------------- public frmmain() { initializecomponent(); // -------------- verbindungsstring m_strconn = "provider=microsoft.jet.oledb.4.0; data source=zulass2002.mdb"; [color="red"]//<-- connectionstring auf die access-datei[/color] } // ------------------------------------------------------------------- // programm beenden // ------------------------------------------------------------------- private void beendentoolstripmenuitem_click(object sender, eventargs e) { close(); } // ------------------------------------------------------------------- // formload // ------------------------------------------------------------------- [color="red"]//wenn das fenster geladen wird, füllen.[/color] private void frmmain_load(object sender, eventargs e) { try { //oledb-provider oledbdataadapter da = new oledbdataadapter("select * from zulassungen order by zulassungsnr;", m_strconn); [color="red"]//daten aus der datei holen.[/color] datatable ds = new datatable(); // fill speichert die abfrage in einer datatable da.fill(ds); [color="red"]//datenaus der datei merken.[/color] dgvzulassung.datasource = ds; [color="red"]//daten aus der datei ins datagridview (a.d.r., weil dgv) schreiben[/color] dgvzulassung.columns["id"].visible = false; [color="red"]//pk nicht anzeigen[/color] dgvzulassung.columns["zulassungsnr"].readonly = true; [color="red"]//spalte nur lesbar[/color] dgvzulassung.columns["gültig bis"].readonly = true; [color="red"]//spalte nur lesbar[/color] [color="red"]//zeilen iterieren[/color] for (int i = 0; i < dgvzulassung.rowcount; i++) { [color="red"]//prüfen auf zulassungsnummer[/color] if (dgvzulassung["zulassungsnr", i].value.tostring() == "z-43.11-116") { [color="red"]//zeile selectieren...[/color] dgvzulassung.rows[i].selected = true; [color="red"]//...notfalls scrollen[/color] dgvzulassung.firstdisplayedscrollingrowindex = i; [color="red"]//schleife beenden[/color] break; } } } catch (exception ex) { messagebox.show(ex.message, "pro.tis.net"); } 12345 Zitieren
ickebins1989 Geschrieben 19. Februar 2009 Autor Geschrieben 19. Februar 2009 Ich danke Dir. Hast mir sehr geholfen. Werde bei weiteren Fragen darauf zurück kommen. Ist einfach schwer für mich, da ich keinen Einstieg ins Programmieren hatte und nun vor so etwas gestellt werde, mit der Aussage: "Versuchs mal zu verstehen"... Zitieren
MidnightRun Geschrieben 19. Februar 2009 Geschrieben 19. Februar 2009 Ich danke Dir. Hast mir sehr geholfen. Werde bei weiteren Fragen darauf zurück kommen. Ist einfach schwer für mich, da ich keinen Einstieg ins Programmieren hatte und nun vor so etwas gestellt werde, mit der Aussage: "Versuchs mal zu verstehen"... Einer aus meiner Berufsschulklasse hat vor seiner Ausbildung ein Praktikum gemacht mit Möglichkeit auf Übernahme. Bei ihm wurden auch solche Dinge erwartet, aber die tuen das nur um zu sehen ob du den willen hast etwas zu lernen und deine Selbstständigkeit wird getestet. Der Typ aus meiner Klasse wurde nicht genommen von dennen, da er ständig nachgefragt hat, anstatt sich einzulesen oder im Internet zu recherchieren. Nur so ein Tipp. So long Zitieren
ickebins1989 Geschrieben 19. Februar 2009 Autor Geschrieben 19. Februar 2009 Einer aus meiner Berufsschulklasse hat vor seiner Ausbildung ein Praktikum gemacht mit Möglichkeit auf Übernahme. Bei ihm wurden auch solche Dinge erwartet, aber die tuen das nur um zu sehen ob du den willen hast etwas zu lernen und deine Selbstständigkeit wird getestet. Der Typ aus meiner Klasse wurde nicht genommen von dennen, da er ständig nachgefragt hat, anstatt sich einzulesen oder im Internet zu recherchieren. Nur so ein Tipp. So long Ja klar. Ist mir auch klar. Jedoch war ich bei diesem Betrieb hier schonmal. Hat mir gut gefallen dann hab ich mich entschlossen mein halbjähriges Praktikum auch hier zu machen. Am Anfang hatten sie mir gleich gesagt, dass sie Auszubildende einstellen, in diesem Jahr. Jedoch denke ich nicht, dass das Programmieren bei mir eine Zukunft hat. Ich hab einfach nicht die nötigen Grundkenntnisse - und bekomme sie irgendwie auch nicht in de Kopf - um diesen Beruf oder diese Ausbildung anzustreben. Ich find´s halt irgendwie schwachsinnig, dass ich hier Tag für Tag 8 Stunden lang am Pc sitze, mir versuche selber was beizubringen, aber es ja doch nicht klappt, weil mir einfach das Verständnis fehlt.:floet: Zitieren
Argbeil Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Du kannst natürlich auch mit dem Debugger durchlaufen und Zeile für Zeile prüfen was passiert. Aber effektiver als 8 Stunden vor dem Kasten zu sitzen ist mit Sicherheit ein ADO.NET Einsteigerbuch durchzuarbeiten. Vielleicht steht da auch drin das es schlechter Stil ist über das DataView die Daten zu verändern. Zitieren
ickebins1989 Geschrieben 26. Februar 2009 Autor Geschrieben 26. Februar 2009 (bearbeitet) Moin. Stehe nun vor der Aufgabe: Habe beim Ausführen des Programmes 4 Tabellenspalten. Unter jeder Spalte ist eine Textbox. Nun möchte ich durch Eingabe in die Textbox, den entsprechenden Text in der Tabelle anzeigen lassen. Habt Ihr Ideen? Ich möchte keinen kompletten Quelltext, nur eventuelle Stichwörter, zum Suchen, weil ich so nichts finde und auch keine Ahnung hab, nach was ich da suchen soll. Also knapp gesagt, ich möchte die Eingabe die ich in die Textbox schreibe in dem datagridview anzeigen. Danke! Grüße Bearbeitet 26. Februar 2009 von ickebins1989 Zitieren
Argbeil Geschrieben 26. Februar 2009 Geschrieben 26. Februar 2009 Ich sag dir was du machen musst, die genaue Syntax musst du selbst rausfinden: 1. In der ersten Table deines Datasets eine neue DataRow anlegen. (Factory Methode NewRow ) 2. Die entsprechen Felder der Row füllen 3. Die Row an die Table hängen ( AddRow ) 4. fertig - Dataview aktualisiert sich von selbst. Zitieren
ickebins1989 Geschrieben 26. Februar 2009 Autor Geschrieben 26. Februar 2009 Danke für die schnelle Antwort. Bin glaub etwas schwer von Begriff. Wie gesagt ich bin noch Anfänger. Ich weiß garnicht wo ich jetzt "klicken" muss und den Quell-Code schreiben soll. Ist alles so verwirrend. Sorry, wenn ich so doof bin Und wie kann ich dieses dann mit der Textbox, also der Eingabe verknüpfen? Ich merk gerade, dass ich wirklich keine Ahnung habe Zitieren
Argbeil Geschrieben 26. Februar 2009 Geschrieben 26. Februar 2009 Dann würde dir eine detaillierte Erklärung nur bedingt helfen. Besorg dir ein Einsteigerbuch, C# .NET Schritt für Schritt von MS Press kann ich empfehlen. Zitieren
ickebins1989 Geschrieben 26. Februar 2009 Autor Geschrieben 26. Februar 2009 Hab ich hier liegen. Habe sogar 3 Bücher. 2 * C# dann noch eins mit Ado.net Ich glaub einfach, der Beruf ist nichts für mich. Ich verzweifel hier... Mittlerweile hab ich das mit nem SQL-Befehl gemacht (auch gezeigt bekommen)...: OleDbDataAdapter da = new OleDbDataAdapter("SELECT * from Zulassungen WHERE ZulassungsNr LIKE '" + tBZulassungsNr.Text + "%' ORDER BY ZulassungsNr;", m_strConn); Zitieren
ickebins1989 Geschrieben 2. März 2009 Autor Geschrieben 2. März 2009 Moin. Hoffe ihr könnt mir nochmal helfen. Hab nun die Aufgabe aus einer Spalte (ZulassungsNr) nur bestimmte Zahlen anzeigen zulassen. In der Spalte sind im Moment noch Sachen wie Z: - usw. Also ich möchte das Z weghaben. Desweiteren den Bindestrich (minus). Nun habe ich folgenden Befehl: string str = "71-0014"; str = str.Replace("Z", ""); Z ersetzen durch nichts str = str.Replace("-", ""); - ersetzen durch nichts str = str.Replace(".", ""); - ersetzen durch nichts //str = str.Remove(0, 2);(ne möglichk. deshalb in //) Jedoch passiert im DGV nichts. Daten stehen immer noch unverändert da. Nun zu meiner Frage. Soll ich dies vielleicht mit einer SQL-Abfrage machen? Wäre das von Vorteil? Ist dies überhaupt möglich? Was ist denn an dem obigen Code falsch? Grüße Zitieren
TDM Geschrieben 2. März 2009 Geschrieben 2. März 2009 Jedoch passiert im DGV nichts. Daten stehen immer noch unverändert da. Nun zu meiner Frage. Soll ich dies vielleicht mit einer SQL-Abfrage machen? Kommt drauf an - sollst du die Daten nur anders anzeigen oder sollen die anders abgespeichert sein? Ansonsten gibts Grundcommands wie Replace o.Ä. in fast jedem gängigen DBMS. Zitieren
ickebins1989 Geschrieben 2. März 2009 Autor Geschrieben 2. März 2009 Hi. Danke für die schnelle Antwort. Das Programm kommt ja erst später. Gespeichert werden soll erst nachher. Ist im Moment noch egal. Es sollen ganz einfach die Daten aus der Access Tabelle ohne die Z´s, ohne die -´s und ohne die .´s angezeigt werden. Dies müsste ja eigentlich mit meinem o. g. Code funktionieren. Passiert aber nichts :confused: Zitieren
TDM Geschrieben 2. März 2009 Geschrieben 2. März 2009 Du weißt aber schon, dass du str der jeweiligen Zelle nach einem neuen Laden zuweisen musst... Ansonsten würd ichs gleich im Query umschreiben lassen. sowas wie: SELECT REPLACE(COL, "Z", "") AS COL FROM TABLE (TSQL) Zitieren
ickebins1989 Geschrieben 2. März 2009 Autor Geschrieben 2. März 2009 Nein weiß ich nicht. Wie gesagt ich bin ein Neuling Ansonsten würd ichs gleich im Query umschreiben lassen. Was meinst du damit? Versteh ich nicht... Was ist denn der Befehl "COL" ? Zitieren
Argbeil Geschrieben 2. März 2009 Geschrieben 2. März 2009 Gegenfrage, was hat denn str mit deinem Datagridview zu tun? Zitieren
TDM Geschrieben 2. März 2009 Geschrieben 2. März 2009 Was meinst du damit? Versteh ich nicht... Das Query soll die Daten bereits verändert zurückliefern, damit du das nicht erst programmtechnisch noch umschreiben musst. Stored-Procedur bietet sich hier an. (Google und so) Was ist denn der Befehl "COL" ? COL hab ich aus Gewohnheit stellvertretend für deine Spalte (englisch Column) geschrieben. Zitieren
ickebins1989 Geschrieben 2. März 2009 Autor Geschrieben 2. März 2009 Gegenfrage, was hat denn str mit deinem Datagridview zu tun? Hmm. Ich hab einfach keinen Durchblick. Ich weiß einfach nicht wo ich was hinschreiben muss. Str hat eigentlich garnichts damit zu tun. Ist einfach nur ne Variable?! Zitieren
ickebins1989 Geschrieben 3. März 2009 Autor Geschrieben 3. März 2009 Könnte ich das nicht einfach mit dem Befehl if machen? Also ich meine wenn er ein Z, ein - und ein . findet, soll er diese durch nichts ersetzen. Geht das? Zitieren
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.