VB 2013 Mysql & DataGridView & leer Abfragen bzw Abfrage ist empty


teufel964

Grünschnabel
Hi alle Zusammen,

habe ein Programm (was auch sonst) mit einer Abfrage auf eine MySQL Tabelle, klappt soweit gut. Nun möchte ich, das die Datenbank bei einer Abfrage die empty ist, mir dies per MsgBox anzeigt. Z.B. bei Abfrage auf eine Spalte
Code:
        Dim cn As New MySqlConnection
        Dim da As New MySqlDataAdapter
        Dim cmd As New MySqlCommand
        Dim dt As New DataTable
        cn.ConnectionString = "server = meinPC; user id = ich; password = pw; database = Auftraege"
        cmd.Connection = cn
        da = New MySqlDataAdapter("SELECT Nr, Datum, Abteilung, Termin FROM Blabla Where Name = '" & tb_name.Text & "' AND Vorname = '" & tb_vorname.Text & "' OR Nummer = '" & tb_nummer.Text & "' Limit 0,10", cn)
        da.Fill(dt)
        DataGridView1.DataSource = dt

        If DataGridView1.Item(x, y).Value = " " Then
            Dim ask As DialogResult = MessageBox.Show("Kein Datensatz gefunden." & vbCrLf & "Weitere Daten des Kunden im Stamm suchen?", "Achtung", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)
            If ask = Windows.Forms.DialogResult.Yes Then
            ....
            ElseIf ask = Windows.Forms.DialogResult.No Then
                Me.Close()
            End If
Er stopp bei : If DataGridView1.Item(x, y).Value = " " Then
Nicht jeder Kunde ist in der Datenbank Auftraege erfasst, darum soll er weiter Datenbanken abfragen. Das ist an sich kein Problem.
kann ich möglicherweise schon bei den Variablen da oder dt eine Abfrage starten?

Bin über für alles offen. Danke aber im Voraus

Teufel 964
 

Spyke

Premium-User
Was heißt er stoppt?
Kommt da ev. eine Exception?
Da ich jetzt nicht weiß was x und y sind würde ich mal vermuten du versuchst auf eine Zelle zuzugreifen die nicht existiert, da ja keine Daten da sind.

In diesem Fall wäre eh die Frage ob du da nicht auch ganz einfach die Zeilenanzahl des Grids prüfst ob Daten vorhanden sind.
 

teufel964

Grünschnabel
Hallo Spyke,
sorry, hätte ich besser beschreiben sollen.
Ja er bricht ab, aber wie immer bei MySQL Conn. ist die Fehlermeldung nicht ganz eindeutig.
X,Y sind die Werte der Zeilen und Spalten, die Leer sind. Soweit habe ich es selber heraus gefunden.
Ich habe im Netz folgendes gefunden :

Me.DataGridView1.DefaultCellStyle.NullValue = "no entry"

Stehe aber gerade mächtig auf dem Schlauch, wie ich dies anwende.

Gruß

Teufel964
 

Spyke

Premium-User
Poste einfach mal die (komplette) Fehlermeldung.

Dein DataGridView ist ja datengebunden und meine vermutung wäre immer noch das du versuchst auf Zellen zuzugreifen die überhaupt nicht existieren, da du im ersten Post das IF Statement als Stopp angegeben hast.

Vorallem verwirrt mich das du jetzt die mysql conn angibst die wohl jetzt fehler schmeißt.

Edit:
Nochmal ausgehend von deinem ersten Post.
Meinst du mit empty das keine datensätze existieren oder das einzelne Spaltenwerte des datensatzes leer sind?
Ansonsten könnteste denn Inhalt einer Zelle mal auf DBNull (oder auch null ev.) prüfen.
 
Zuletzt bearbeitet:

Neue Beiträge