`
guochunyang2004
  • 浏览: 80244 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

转:C#中NULL,"",DBNULL,String.Empty,Convert.IsDBNull()的区别

 
阅读更多

来源:http://www.cnblogs.com/luohuarenduli/archive/2008/05/09/1190490.html

(1)NULL

null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。

(2)DBNULL

DBNull在DotNet是单独的一个类型,该类只能存在唯一的实例,DBNULL.Value,DBNull唯一作用是可以表示数据库中的字符串,数字,或日期,为什么可以表示原因是DotNet储存这些数据的类(DataRow等)都是以 object 的形式来储存数据的。对于 DataRow , 它的 row[column] 返回的值永远不为 null , 要么就是具体的为column 的类型的值 。 要么就是 DBNull 。 所以 row[column].ToString() 这个写法永远不会在ToString那里发生NullReferenceException。DBNull 实现了 IConvertible 。但是,除了 ToString 是正常的外,其他的ToXXX都会抛出不能转换的错误。

(3)""和String.Empty

这两个都是表示空字符串,其中有一个重点是string str1="" 和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将抱错。

(4)Convert.IsDBNull()

Convert.IsDBNull()返回有关指定对象是否为 DBNull 类型的指示,即是用来判断对象是否为DBNULL的。其返回值是True或Flase。

分享到:
评论

相关推荐

    asp.net中DBNull.Value,null,String.Empty区别浅析

    在ASP.NET开发中,了解`DBNull.Value`, `null`, 和 `String.Empty`的区别至关重要,因为它们在处理数据和字符串操作时有不同的含义和用途。以下是对这三个概念的详细解析: 1. **DBNull.Value**: DBNull.Value是...

    C#连接数据库——Database.cs(类)

    根据给定的文件信息,我们可以总结出以下关于C#中使用`Database.cs`类来连接数据库的关键知识点: ### 一、C#中的Database类设计 `Database.cs`类被设计用于封装与数据库交互的所有功能,包括但不限于连接数据库、...

    对象不能从 DBNull 转换为其他类型

    例如,在C#中,当我们尝试将DBNull.Value转换为int、string或其他任何类型时,就会引发此异常。这主要是因为DBNull.Value不是一个实际的对象实例,而是一种特殊标记,用于表示数据行中的特定列包含数据库NULL值。 #...

    C#Newtonsoft.json类库

    C# Newtonsoft.Json 类库是.NET开发中广泛使用的第三方库,用于处理JSON(JavaScript Object Notation)数据。这个库由James Newton-King 创建,因此命名为Newtonsoft.Json,它提供了丰富的功能来序列化和反序列化...

    C#中oracle数据库的操作方法汇总

    在C#中与Oracle数据库进行交互是常见的任务,本文将详细介绍两种主要的连接方式、事务处理、命令参数的创建以及如何使用数据集显示查询结果。这些知识点对于开发C#应用程序并需要与Oracle数据库进行交互的开发者来说...

    将datatable里的数据导出DBF文件

    - **开发语言**:C# - **数据库类型**:DBF (FoxPro数据库) - **.NET Framework组件**:`System.Data.OleDb` #### 实现步骤详解 ### 2. 准备阶段 - **标准库复制**:为了确保导出的DBF文件结构符合预期,首先需要...

    asp.net中对数据库表插入null空值的问题

    ### ASP.NET中对数据库表插入NULL空值的问题 在ASP.NET开发过程中,向数据库表插入数据时遇到NULL值处理不当的问题十分常见。本篇文章将详细探讨这个问题,并提供一些解决方案。 #### 问题背景 在ASP.NET应用程序...

    c#可空类型的作用说明

    可空类型用途主要是从数据库读取数据有可能为空,而不是插入使用,插入数据都要进行验证,如果要插入数据库的null,则使用DBNull.value 判断取出的数据是否为数据库中的null,如果是则赋值给可空的datetime类型的...

    C#中SQL参数传入空值报错解决方案

    C#中的null与SQL中的NULL是不一样的,SQL中的NULL用C#表示出来就是DBNull.Value。 注意:SQL参数是不能接受C#的null值的,传入null就会报错。 下面我们看个例子: SqlCommand cmd=new SqlCommand(Insert into ...

    Silverlight DataSet

    需要下载:Silverlight.DataSet和Silverlight.DataSetConnector ...此DataTable中存入的数据不是object类型的,而全是string类型的,如果数据库中存的值为null,那么取出来的值是null而不是DbNull.Value.

    个人整理c#网站开发入门问题

    在C#网站开发中,处理数据库查询结果时,通常会将数据加载到`DataSet`对象中进行操作。例如,获取`RelClinicID`字段的信息可以使用以下代码: ```csharp dataset.Tables[0].DefaultView[0]["RelClinicID"].ToString...

    C#_SQLite操作类库

    ### C#中的SQLite操作类库知识点详解 #### 一、简介 在开发应用程序时,数据库操作是必不可少的一部分。本文档将详细介绍一个C#中的SQLite操作类库——`SQLiteHelper`,该类库提供了多种用于执行SQLite数据库操作的...

    C#类型转换,汉字和Email判断

    在C#编程语言中,类型转换是一项非常重要的技能,它能够帮助开发者灵活地处理不同数据类型之间的转换。本文将基于提供的代码片段来深入探讨C#中的几种常见类型转换方法,以及如何进行汉字和Email的判断。 #### 类型...

    C#实现改变DataGrid某一行和单元格颜色的方法

    在C#中,改变DataGrid的行和单元格颜色通常涉及到对WPF的DataGrid控件的操作,包括数据源的绑定、行和单元格的获取以及样式设置。以下是一个详细的步骤来实现这一功能: 1. **添加DataGrid控件**: 在XAML文件中,...

    解析java中This的用法分析

    在`ThisDemo`类中,无参数的构造函数`ThisDemo()`调用了带有参数的构造函数`ThisDemo(String name, int age)`,这样可以在初始化对象时根据需要选择不同的构造方式。虽然看起来可能会有两个内存空间的创建,但实际上...

    c#数据库.docx

    ### C#与数据库交互关键技术详解 #### 一、事务处理 事务是数据库操作的重要组成部分,它确保了数据的一致性和完整性。在C#中通过ADO.NET可以方便地管理事务。 **1.1 事务基本概念** 事务(Transaction)是指一组...

    C#将DataTable转化为List<T>

    在C#开发中,将DataTable转换为List泛型集合是一个常见的需求,特别是在使用三层架构进行网站开发时,我们可能会从数据访问层获取一个DataTable对象,然后需要将其转换为一个强类型的List集合以便在业务逻辑层或表示...

    c#读取图像保存到数据库中(数据库保存图片)

    代码如下:注:MyTools.g_PhotoField为数据库表中的图象字段名称//将图片保存到数据库中 if(this.picPhoto.Image==null) { m_DataRow[MyTools.g_PhotoField]=DBNull.Value; } else { try { MemoryStream ms = ...

    VS2005(c#)项目调试问题解决方案集锦

    - **解决方法**:使用`DBNull.Value`来判断是否为NULL,或者在访问字段前使用`IsDBNull`方法。 ```csharp if (!reader.IsDBNull(reader.GetOrdinal("FieldName"))) { string fieldValue = reader["FieldName"] ...

Global site tag (gtag.js) - Google Analytics