vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Wert einer Zelle in einem DataGridView prüfen 
Autor: Schudi
Datum: 18.02.23 18:48

Hallo Manfred,

vielen Dank für die Antwort bzw. Erklärung.

Ja, es geht um "fehlende" Datenfelder. Wie gesagt, mit dem zuletzt geposteten Code klappt es.

Nur, um vielleicht doch noch herauszufinden, was ich falsch gemacht habe... Also ich bin wie folgt vorgegangen:

1) Dem Projekt ein neues Dataset hinzugefügt und im DataDesigner die Tabelle und die Spalten angelegt
2) Das DataSet per Copy/Paste von der Maske1 (FrmHaupt) nach Maske2 (FrmKunden) kopiert.
3) In der Hauptform wird die Untermaske wie folgt aufgerufen:

Dim _frmKunden As New FrmKunden With {.DSKunden = DSKunden}
    _frmKunden.ShowDialog()
4) In der Untermaske die Property wie folgt definiert:

Public Property DSKundendaten As DSKunden
    'DSKunden ist über den Designer (in der Form) angelegt
    Get
       Return DSKunden
    End Get
    Set(value As DSKunden)
        DSKunden = value
    End Set
    End Property
5) Dann wird das Dataset über Eingabefelder mit Daten gefüllt, wobei einzelne Felder leer bleiben dürfen.
Der DefaultValue aller Felder ist, sofern mand as nicht im Designer ändert, standardmäßig <DBNUll>.
Daher haben alle nicht angegebenen Felder den Wert DBNull


6) Jetzt habe ich in beiden Formen einen Lauf durch alle Datensätze in - zunächst - dieser genau gleichen Form:

For Each Kunde As DSKunden.DTKundenRow In DSKunden.DTKunden.Rows
   If Kunde.EmailAdresse2 <> "" Then
      'Tu etwas
   Else
      'Tu was anderes
Next
In FrmHaupt läuft der Code problemlos und er bringt auch die Daten der in frmKunden eingegebenen Kunden.
In FrmKunden wirft der Code den genannten "Wert ist DBNull" Error.

Mir ist jetzt gerade nur aufgefallen, dass beim Aufruf von _frmKunden auf DSKunden und nicht auf die Property DSKundendaten verwiesen wird. Ist das evtl. der Fehler? Der Code wurde von der IDE so verkürzt. Ursprünglich hatte ich alle Zeilen ausgeschrieben ohne "With".

Ich lasse den Code jetzt sowieso bei der gefundenen Lösung, weil ich meine, dass das die "korrekteste" Weise ist auf DBNull zu reagieren. Es muss ja einen Sinn haben, dass die IDE automatisch die Funktion Is'Column'Null zur Verfügung stellt bzw. generiert:

If Not Kunde.IsEmailAdresse2Null() AndAlso Kunde.EmailAdresse2 <> "" Then
    outZeile += Kunde.EmailAdresse2 & Feldtrenner
Else
    outZeile += Feldtrenner
End If
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wert einer Zelle in einem DataGridView prüfen463Schudi14.02.23 20:29
Re: Wert einer Zelle in einem DataGridView prüfen314Kuno6014.02.23 22:15
Re: Wert einer Zelle in einem DataGridView prüfen332Schudi14.02.23 22:44
Re: Wert einer Zelle in einem DataGridView prüfen186Manfred X16.02.23 13:08
Re: Wert einer Zelle in einem DataGridView prüfen150Schudi17.02.23 04:19
Re: Wert einer Zelle in einem DataGridView prüfen154Schudi17.02.23 18:33
Re: Wert einer Zelle in einem DataGridView prüfen151Schudi18.02.23 08:42
Re: Wert einer Zelle in einem DataGridView prüfen151Schudi18.02.23 15:07
Re: Wert einer Zelle in einem DataGridView prüfen138Manfred X18.02.23 17:47
Re: Wert einer Zelle in einem DataGridView prüfen138Schudi18.02.23 18:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel