DBNull 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
존재하지 않는 값을 나타냅니다. 이 클래스는 상속될 수 없습니다.
public ref class DBNull sealed
public ref class DBNull sealed : IConvertible, System::Runtime::Serialization::ISerializable
public sealed class DBNull
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
type DBNull = class
type DBNull = class
interface IConvertible
interface ISerializable
[<System.Serializable>]
type DBNull = class
interface ISerializable
interface IConvertible
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DBNull = class
interface ISerializable
interface IConvertible
Public NotInheritable Class DBNull
Public NotInheritable Class DBNull
Implements IConvertible, ISerializable
- 상속
-
DBNull
- 특성
- 구현
예제
다음 예제에서는 메서드를 DBNull.Value.Equals
호출하여 연락처 데이터베이스의 데이터베이스 필드에 유효한 값이 있는지 여부를 확인합니다. 이 경우 필드 값이 레이블의 문자열 출력에 추가됩니다.
private void OutputLabels(DataTable dt)
{
string label;
// Iterate rows of table
foreach (DataRow row in dt.Rows)
{
int labelLen;
label = String.Empty;
label += AddFieldValue(label, row, "Title");
label += AddFieldValue(label, row, "FirstName");
label += AddFieldValue(label, row, "MiddleInitial");
label += AddFieldValue(label, row, "LastName");
label += AddFieldValue(label, row, "Suffix");
label += "\n";
label += AddFieldValue(label, row, "Address1");
label += AddFieldValue(label, row, "AptNo");
label += "\n";
labelLen = label.Length;
label += AddFieldValue(label, row, "Address2");
if (label.Length != labelLen)
label += "\n";
label += AddFieldValue(label, row, "City");
label += AddFieldValue(label, row, "State");
label += AddFieldValue(label, row, "Zip");
Console.WriteLine(label);
Console.WriteLine();
}
}
private string AddFieldValue(string label, DataRow row,
string fieldName)
{
if (!DBNull.Value.Equals(row[fieldName]))
return (string) row[fieldName] + " ";
else
return String.Empty;
}
member this.OutputLabels(dt: DataTable) =
let mutable label = ""
// Iterate rows of table
for row in dt.Rows do
let mutable label = String.Empty
label <- label + this.AddFieldValue(label, row, "Title")
label <- label + this.AddFieldValue(label, row, "FirstName")
label <- label + this.AddFieldValue(label, row, "MiddleInitial")
label <- label + this.AddFieldValue(label, row, "LastName")
label <- label + this.AddFieldValue(label, row, "Suffix")
label <- label + "\n"
label <- label + this.AddFieldValue(label, row, "Address1")
label <- label + this.AddFieldValue(label, row, "AptNo")
label <- label + "\n"
let labelLen = label.Length
label <- label + this.AddFieldValue(label, row, "Address2")
let labelLen =
if label.Length <> labelLen then
label + "\n"
else label
label <- label + this.AddFieldValue(label, row, "City")
label <- label + this.AddFieldValue(label, row, "State")
label <- label + this.AddFieldValue(label, row, "Zip")
printfn $"{label}"
printfn ""
member _.AddFieldValue(label: string, row: DataRow, fieldName: string) =
if DBNull.Value.Equals row[fieldName] |> not then
(string row[fieldName]) + " "
else
String.Empty
Private Sub OUtputLabels(dt As DataTable)
Dim label As String
' Iterate rows of table
For Each row As DataRow In dt.Rows
Dim labelLen As Integer
label = String.Empty
label += AddFieldValue(label, row, "Title")
label += AddFieldValue(label, row, "FirstName")
label += AddFieldValue(label, row, "MiddleInitial")
label += AddFieldValue(label, row, "LastName")
label += AddFieldValue(label, row, "Suffix")
label += vbCrLf
label += AddFieldValue(label, row, "Address1")
label += AddFieldValue(label, row, "AptNo")
label += vbCrLf
labelLen = Len(label)
label += AddFieldValue(label, row, "Address2")
If Len(label) <> labelLen Then label += vbCrLf
label += AddFieldValue(label, row, "City")
label += AddFieldValue(label, row, "State")
label += AddFieldValue(label, row, "Zip")
Console.WriteLine(label)
Console.WriteLine()
Next
End Sub
Private Function AddFieldValue(label As String, row As DataRow, _
fieldName As String) As String
If Not DbNull.Value.Equals(row.Item(fieldName)) Then
Return CStr(row.Item(fieldName)) & " "
Else
Return Nothing
End If
End Function
설명
클래스는 DBNull 존재하지 않는 값을 나타냅니다. 예를 들어 데이터베이스에서 테이블 행의 열에 데이터가 전혀 포함되지 않을 수 있습니다. 즉, 열은 단순히 값이 없는 것이 아니라 전혀 존재하지 않는 것으로 간주됩니다. 개체는 DBNull 존재하지 않는 열을 나타냅니다. 또한 COM interop은 클래스를 DBNull 사용하여 존재하지 않는 값을 나타내는 VT_NULL 변형과 지정되지 않은 값을 나타내는 VT_EMPTY 변형을 구분합니다.
형식은 DBNull 단일 클래스입니다. 즉, 하나의 DBNull 개체만 존재합니다. 멤버는 DBNull.Value 유일한 DBNull 개체를 나타냅니다.
DBNull.Value 는 데이터베이스 필드에 존재하지 않는 값을 명시적으로 할당하는 데 사용할 수 있지만 대부분의 ADO.NET 데이터 공급자는 필드에 유효한 값이 없는 경우 값을 DBNull 자동으로 할당합니다. 데이터베이스 필드에서 검색된 값이 DBNull 해당 필드 DBNull.Value.Equals
의 값을 메서드에 전달하여 값인지 여부를 확인할 수 있습니다. 그러나 일부 언어 및 데이터베이스 개체는 데이터베이스 필드 DBNull.Value의 값이 인지 여부를 보다 쉽게 확인할 수 있는 메서드를 제공합니다. 여기에는 Visual Basic IsDBNull
함수, Convert.IsDBNull 메서드, DataTableReader.IsDBNull 메서드 및 메서드가 IDataRecord.IsDBNull 포함됩니다.
개체 지향 프로그래밍 언어의 null
개념을 개체와 DBNull 혼동하지 마세요. 개체 지향 프로그래밍 언어 null
에서 은 개체에 대한 참조가 없음을 의미합니다.
DBNull 는 초기화되지 않은 변형 또는 존재하지 않는 데이터베이스 열을 나타냅니다.
필드
Value |
DBNull 클래스의 유일한 인스턴스를 나타냅니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
ISerializable 인터페이스를 구현하고 DBNull 개체를 serialize하는 데 필요한 데이터를 반환합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
GetTypeCode() | |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
빈 문자열(Empty)을 반환합니다. |
ToString(IFormatProvider) |
지정된 IFormatProvider를 사용하는 빈 문자열을 반환합니다. |
명시적 인터페이스 구현
적용 대상
추가 정보
.NET