C#でのDBNULLの説明
1 概要
次の例ですが、どこが間違っていると思いますか? 問題をすぐに見つけて解決できる場合は、この記事をスキップしても問題ありません、ありがとう~~。
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 }
少し考えてください。理解できない場合は、下の写真のマークされた領域を見てください。
わかりました、この記事はこの問題を解決するためのものです。それが、次に共有する System.DBNULL 型です
2 コンテンツ共有
2.1 .NET では、一般的に使用される基本データ型
int、string、char などがよく知られています。基本的なデータ型ですが、ほとんどの人は System.DBNull に馴染みがないはずですが、上記の問題を解決することは大きなアイデアです。
2.2 SqlServer の一般的なデータ型
varchar、nvarchar、int、bit、decimal、datetime などは、基本的に .net のデータ型に 1 対 1 で対応します (varchar と nvarchar は両方とも .net に対応します)。 net string type)
2.3 SqlServer の一般的なデータ型の初期値
.net では、変数を定義するときに、初期値を割り当てないと、システムはデフォルトのint などの初期値型のデフォルトは 0、文字列型のデフォルトは string.Empty です。ただし、SqlServer では、ほとんどすべての変数型の初期値が異なります。 NULL は、ユーザー定義値またはシステムのデフォルト値 NUL のいずれかであることを意味します。これが問題の鍵です。int 型を例にとると、データベースで INT に値を割り当てない場合、この値が .net の整数変数に割り当てられると、例外が発生します。投げられるだろう。 2.4 System.DBNull とは何ですか?
DBNull は Object を継承したクラスで、そのインスタンスは DBNull.Value であり、データ内の NULL 値に相当します。
2.5 DBNull が他のデータ型を表現できるのはなぜですか?
データベースでは、データはオブジェクトに保存されます。
2.6 上記の問題の解決方法
条件判定を追加
文字列型が空かDBNullがNULLに等しいかで判定できる
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 }
以上がC#でのDBNULLの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。

.NET 開発者は、高品質のソフトウェアを提供するために機能とパフォーマンスを最適化することの重要性を認識する必要があります。提供されたリソースを巧みに活用し、Web サイトの読み込み時間を短縮することで、ユーザーに快適なエクスペリエンスを提供するだけでなく、インフラストラクチャのコストも削減できます。

同時実行性の高いリクエスト処理の点では、.NETASP.NETCoreWebAPI は JavaSpringMVC よりも優れたパフォーマンスを発揮します。その理由としては、AOT の早期コンパイルにより起動時間が短縮され、開発者がオブジェクト メモリの割り当てと解放を行うため、より洗練されたメモリ管理が行われます。

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

C#.NETインタビューの質問と回答には、基本的な知識、コアの概念、高度な使用が含まれます。 1)基本知識:C#は、Microsoftが開発したオブジェクト指向言語であり、主に.NETフレームワークで使用されています。 2)コアの概念:委任とイベントは動的な結合方法を可能にし、LINQは強力なクエリ関数を提供します。 3)高度な使用:非同期プログラミングは応答性を向上させ、式ツリーは動的コード構造に使用されます。

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。
