Veröffentlicht 16. Juni 200916 j Hallo Leute Wer kann mir beim folgenden Link helfen. Ich sollte aus der Access Datenbank die höchste spielernr. suchen und in textbox 1 einfügen. Aber es klappt nicht. Danke con_ja.ConnectionString = "Provider = Microsoft.jet.oledb.4.0;" & "Data source =" & dsp.InitialDirectory Cmd.Connection = con_ja Cmd.CommandText = "SELECT max(spielernr) FROM jassen" Try con_ja.Open() reader = Cmd.ExecuteReader() Do While reader.Read() TextBox1.Text = (reader("max(Spielernr)")) MsgBox(TextBox1.Text) Loop Catch ex As Exception ' MsgBox(ex.Message) End Try reader.Close()
16. Juni 200916 j Aber es klappt nicht. Geht nicht ist keine ausreichende Fehlerbeschreibung. Noch nie gewesen, wird's auch nie sein. http://www.catb.org/~esr/faqs/smart-questions.html#code Lesen. Jetzt!
16. Juni 200916 j Geht nicht ist keine ausreichende Fehlerbeschreibung. Noch nie gewesen, wird's auch nie sein. How To Ask Questions The Smart Way Lesen. Jetzt! das textbox1 Feld bleibt leer. Er findet die höchste Zahl nicht.
16. Juni 200916 j ja, damit hat "er" Recht, wenns zB in der Tabelle keine Spieler gibt es befinden sich 37 Datensätze in der Datenbank (Tabelle).
16. Juni 200916 j Und die MessageBox im Catch-Block? Ist die auskommentiert, um die Diagnose zu erschweren?
16. Juni 200916 j Und die MessageBox im Catch-Block? Ist die auskommentiert, um die Diagnose zu erschweren? nein , da bringt er mir nur "max(spielernr)" und darum hab Ich sie weg geschaltet.
16. Juni 200916 j es befinden sich 37 Datensätze in der Datenbank (Tabelle). ja und ? das sagt gar nix dazu aus, dass du ein vernünftiges Maximum bekommst da wir hier nur raten können, welche Typen deine Tabellenattribute haben, solltest du versuchen dein problem nachvollziehbar zu beschreiben: Bekommst du das erwartete Ergebnis, wenn du die Anfrage ohne den Code als reines SQL ausführst ? Bekommst du das erwartete Recordset mit korrekten Ergebnissen zurück ? (sieht man im Debugger)
16. Juni 200916 j Aufbau meiner Datenbank (Tabelle) Tabellen name = jassen Felder : spielernr. Nummerisch, Name und Vorname Charakter 30 es befinden sich 37 Datensätze in der Tabelle. Wenn Ich das oben genannte Skript durchlaufen lasse kommt bei mir Textbox1.text = "". Wenn Ich das oben genannte Skript nur mit spielernr (ohne max()) durchlaufen lasse bringt er mir alle 37 spielernr in derTextbox1 Ich Glaube das er mit max(Spielernr) keine Daten aus der Datenbank (Tabelle) lesen kann.
16. Juni 200916 j nein , da bringt er mir nur "max(spielernr)" und darum hab Ich sie weg geschaltet.Das heißt, es tritt eine Exception auf? Und du löst das Problem, indem du die Meldung entfernst? So kann man's natürlich auch machen. Dir ist schon klar, dass die Exception dann immer noch auftritt, und du nur nichts mehr davon mitbekommst?
16. Juni 200916 j In der Exception Meldung steht nur "max(spielernr)". Damit kann Ich nichts Anfangen und damit Ich da nicht immer auf OK klicken muss hab Ich es weggeschaltet.
16. Juni 200916 j Damit kann Ich nichts Anfangen und damit Ich da nicht immer auf OK klicken muss hab Ich es weggeschaltet.Du kannst dir meinetwegen gern selbst alle Diagnosemöglichkeiten nehmen. Und du kannst auch in deinem Auto die Musik ganz laut aufdrehen, damit du das Klappern nicht mehr hörst. Bedenke aber, dass diese Informationen, die du da absichtlich ausfilterst, für Andere wichtig sein können. Ich vermute mal, dass der Reader mit "max(spielernr)" nichts anfangen kann. Versuch's doch mal mit der int-Variante: SqlDataReader.Item Property (Int32) (System.Data.SqlClient)
16. Juni 200916 j http://www.catb.org/~esr/faqs/smart-questions.html#code Lesen. Jetzt!Hast du das getan?
16. Juni 200916 j Hast du das getan? was meinst du damit? "Hast du das getan?" Ich kann kein Englisch ! Sorry
16. Juni 200916 j was meinst du damit? "Hast du das getan?"Ganz einfach: Ob du dir den Text durchgelesen hast. Dann würdest du nämlich gelesen haben, dass du ein wenig anders fragen solltest. Ich kann kein Englisch !Und dann arbeitest du im IT-Bereich? Sorry, aber dann wirst du früher oder später noch öfters auf die Nase fallen. Anyway - der Text, den ich verlinkt habe findet sich auch auf deutsch: http://www.tty1.net/smart-questions_de.html#code Also: Lesen, verstehen, handeln!
16. Juni 200916 j Cmd.CommandText = "SELECT max(spielernr) As MAXNR FROM jassen" TextBox1.Text = (reader("MAXNR")) Solche Aggregatfunktionen wie MAX, MIN, SUM etc. sind am Besten über ein Alias anzusprechen.
16. Juni 200916 j Danke Perdian Habe es durchgelesen und verstehe jetzt was du meinst. Werde in Zukunft darauf achten. Danke Bearbeitet 16. Juni 200916 j von Floh-2001
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.