Erklärung von DBNULL in C#
1 Übersicht
Was ist Ihrer Meinung nach an dem folgenden Beispiel falsch? Wenn Sie das Problem schnell finden und lösen können, können Sie diesen Artikel überspringen, vielen Dank~~.
1 List<Base_Employee> ltPI = new List<Base_Employee>(); 2 DataTable dt = GetBase_UserInfoToDataTable(); 3 for (int i = 0; i < dt.Rows.Count; i++) 4 { 5 Base_Employee base_Employee= new Base_Employee(); 6 base_Employee.EmployeeId= dt.Rows[i]["EmployeeId"].ToString();//EmployeeId为string类型 7 base_Employee.Age =(int)dt.Rows[i]["Age"];//Age为int类型 8 base_Employee.GraduationDate = (DateTime)dt.Rows[i]["GraduationDate"];//GraduationDate 为DateTime类型 9 }
Denken Sie eine Minute darüber nach. Wenn Sie es nicht herausfinden können, können Sie nach unten schauen Problem.
ok, dieser Artikel soll dieses Problem lösen. Das ist der System.DBNULL-Typ, den ich als Nächstes mit Ihnen teilen möchte
2 Inhaltsfreigabe
2.1 In .NET häufig verwendet Grundlegende Datentypen
int, string, char usw. sind grundlegende Datentypen, mit denen jeder vertraut ist, aber die meisten Menschen sollten mit System.DBNull nicht vertraut sein. Es löst jedoch das oben genannte Problem Probleme. Eine große Idee.
2.2 Allgemeine Datentypen in SqlServer
varchar, nvarchar, int, bit, decimal, datetime usw., grundsätzlich in .net Datentypen entsprechen eins zu eins (sowohl varchar als auch nvarchar entsprechen dem Zeichenfolgentyp in .net)
2.3 Anfangswerte gängiger Datentypen in SqlServer
Wenn wir in .net eine Variable definieren und ihr keinen Anfangswert zuweisen, verwendet das System beispielsweise standardmäßig den Anfangswert 0 und der Zeichenfolgentyp standardmäßig string.Empty. Im Allgemeinen sind die Standardanfangswerte verschiedener Typen unterschiedlich. In SqlServer ist der Anfangswert fast aller Variablentypen jedoch NULL, was entweder ein benutzerdefinierter Wert oder der Systemstandardwert NUL ist. Dies ist der Schlüssel zum Problem. Wenn wir INT in der Datenbank keinen Wert zuweisen, ist sein Standardwert NULL. Wenn dieser Wert einer Ganzzahlvariablen in .net zugewiesen wird, handelt es sich um eine Ausnahme wird geworfen.
2.4 Was ist System.DBNull?
DBNull ist eine Klasse, die Object erbt, und ihre Instanz ist DBNull.Value, was dem NULL-Wert in den Daten entspricht.
2.5 Warum kann DBNull andere Datentypen darstellen?
In der Datenbank werden Daten in Objekten gespeichert.
2.6 So lösen Sie das obige Problem
Bedingte Beurteilung hinzufügen
Sie können zur Beurteilung verwenden, ob der Zeichenfolgentyp leer ist oder ob DBNull gleich NULL ist
1 List<Base_Employee> ltPI = new List<Base_Employee>(); 2 DataTable dt = GetBase_UserInfoToDataTable(); 3 for (int i = 0; i < dt.Rows.Count; i++) 4 { 5 Base_Employee base_Employee= new Base_Employee(); 6 base_Employee.EmployeeId= dt.Rows[i]["EmployeeId"].ToString();//EmployeeId为string类型 7 //base_Employee.Age =(int)dt.Rows[i]["Age"];//Age为int类型 8 if (dt.Rows[i]["Age"]!=System.DBNull.Value) 9 { 10 base_Employee.Age = int.Parse(dt.Rows[i]["Age"].ToString()); 11 //base_Employee.Age = (int)dt.Rows[i]["Age"];//拆箱 12 //base_Employee.Age =Convert.ToInt16( dt.Rows[i]["Age"]); 13 } 14 //base_Employee.GraduationDate = (DateTime)dt.Rows[i]["GraduationDate"];//GraduationDate 为DateTime类型 15 if (dt.Rows[i]["GraduationDate"].ToString()!="") 16 { 17 base_Employee.GraduationDate = Convert.ToDateTime(dt.Rows[i]["GraduationDate"]); 18 base_Employee.GraduationDate = (DateTime)dt.Rows[i]["GraduationDate"]; 19 } 20 }
Das obige ist der detaillierte Inhalt vonErklärung von DBNULL in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Artikel wird die Herausforderungen des Nullzeigers in C untersucht. Es argumentiert, dass das Problem nicht null selbst, sondern seinen Missbrauch ist. Der Artikel beschreibt Best Practices zur Verhinderung der Verhindern, einschließlich Vor-Dre-Dre-Dereferenz-Überprüfungen, Zeiger initiali

In diesem Artikel wird erläutert, wie Sie neue Zeilenzeichen in C mit der \ n Escape -Sequenz innerhalb von Printf erstellen und Funktionen setzt. Es beschreibt die Funktionalität und liefert Codebeispiele, die die Verwendung für Zeilenumbrüche in der Ausgabe demonstrieren.

Dieser Artikel führt Anfänger bei der Auswahl eines C -Compilers. Es wird argumentiert, dass GCC aufgrund seiner Benutzerfreundlichkeit, der breiten Verfügbarkeit und der umfangreichen Ressourcen für Anfänger am besten geeignet ist. Es wird jedoch auch GCC, Clang, MSVC und TCC vergleicht, wodurch ihre Unterschiede hervorgehoben werden

Dieser Artikel betont die anhaltende Bedeutung von NULL in der modernen C -Programmierung. Trotz Fortschritten bleibt NULL für die explizite Zeigerverwaltung von entscheidender Bedeutung und verhindert Segmentierungsfehler, indem das Fehlen einer gültigen Speicheradresse markiert wird. Bestes Prac

Dieser Artikel bewertet Online -C -Compiler für Anfänger, die sich auf die Benutzerfreundlichkeit und Debugging -Funktionen konzentrieren. OnlineGDB und Repl.it sind für ihre benutzerfreundlichen Schnittstellen und hilfreichen Debugging-Tools hervorgehoben. Andere Optionen wie Programmiz und Compil

Dieser Artikel vergleicht Online -C -Programmierplattformen und zeigt Unterschiede in Funktionen wie Debugging -Tools, IDE -Funktionalität, Standardkonformität und Speicher-/Ausführungsgrenzen. Es wird argumentiert, dass die "beste" Plattform von den Benutzerbedürfnissen abhängt.

In diesem Artikel werden effizientes Codekopieren in C -IDEs erläutert. Es wird betont, dass das Kopieren eine IDE -Funktion ist, keine Compiler -Funktion, und Details Strategien für eine verbesserte Effizienz, einschließlich der Verwendung von IDE -Auswahltools, Codefalten, Suchen/Ersetzen, Templa

In diesem Artikel wird die Ausgabefenster in der C -Programmkompilierung fehlt. Es werden Ursachen untersucht, wie das Ausführen der ausführbaren Datei, Programmfehler, falsche Compiler -Einstellungen, Hintergrundprozesse und schnelle Programmabschluss. Lösungen umfassen Ch
