Null是.net中无效的对象引用。
DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(<NULL>)时,在.net中的值。
以下是我测试的一个例子。
例:表tbl_Student
id name address
1 jim <NULL>
将上述表数据填充到.net 的名为dt的DataTable中。
dt.Rows[0]["address"]不等于null但是等于DBNull.Value.
可见null表示一个对象的指向无效,即该对象为空对象。
DBNull.Value表示一个对象在数据库中的值为空,或者说未初始化,DBNull.Value对象是指向有效的对象。
另外注:对上述dt,如果有如下代码:dt.Rows[0][100]。结果如何?
并非想象中的null。而是出现异常:索引超出数组界限。
对于普通的引用类型变量,如果指向对象为null,则会提示:未将对象引用设置到对象实例。但对于使用dt.Rows[i][j]取值,如果第i行存在但 i行没有j列,则直接出现异常,不会返回一个指向null的dt.Rows[i][j]。
所以:使用(dt.Rows[0][100]!=null)判断没有意义。为避免0行的100列不存在。可以判断(dt.Rows[0].ItemArray.Length>100).
发表评论
-
like参数查询
2011-05-24 14:45 836//在做项目的时候遇到使用like参数查询 public ... -
母版页的嵌套
2011-05-24 14:41 3518在嵌套母版页时遇到的问题 在嵌套母版页的时候,最 ... -
删除指定路径的文件
2011-05-04 17:59 876string path = this.Server.Map ... -
获取表单的值
2011-04-18 16:22 689//获取单个表单的值 Request.Form[&quo ... -
C# 正则 获取 Img Src路径
2011-04-15 14:15 5221string str = "<form ... -
C#记录Cookie
2011-04-08 13:44 1121//以一维的形式记录Cookie Response.Co ... -
取机器名, CPU号 硬盘号 网卡号 串口
2011-04-07 21:41 1151//取机器名 public string G ... -
Asp.net获取用户真实Ip地址
2011-04-01 10:39 10153/// <summary> ... -
数据库连接字符串
2011-03-29 21:19 678<connectionStrings> ... -
一般处理程序(ashx)使用Session
2011-03-28 17:18 1297using System; using System.C ... -
实现退出功能
2011-03-21 10:49 1024<a href="login.aspx?a ... -
后台添加Css或Js文件
2011-03-15 15:57 724protected void Page_Load(obje ... -
验证码的比较
2011-03-14 18:24 903[align=left] /// <summary&g ... -
利用ListItem[]给DropDownList绑定数据
2011-03-14 17:41 2874protected void Page_Load(ob ... -
C#生成GUID代码
2011-02-13 19:57 1006Response.Write(System.Guid.Ne ... -
ASP.NET会话(Session)保存模式
2011-02-01 20:43 1818ASP.NET会话(Session)保 ... -
Asp.net相对路径与绝对路径
2011-01-28 22:15 1458[size=medium] 1.Request.Applic ... -
判断数据库表中字段是否为空
2011-01-26 22:46 1438[size=medium] string strSql = ... -
类型转换集合
2011-01-25 23:30 771将空字符串转换为Null值 string str = & ... -
C# 各种字符串格式
2011-01-25 22:45 857[size=medium] 1. C#的Strin ...
相关推荐
在ASP.NET开发中,了解`DBNull.Value`, `null`, 和 `String.Empty`的区别至关重要,因为它们在处理数据和字符串操作时有不同的含义和用途。以下是对这三个概念的详细解析: 1. **DBNull.Value**: DBNull.Value是...
2. **正确的NULL值处理**:使用`System.DBNull.Value`来表示NULL值,并确保在条件判断中正确地使用它。 ```csharp if (string.IsNullOrEmpty(tb12.Text)) { sqlcmd.Parameters["@t12"].Value = System.DBNull....
当从数据库检索的数据为NULL时,.NET Framework使用DBNull.Value来表示这种空值状态。本篇文章将深入探讨“对象不能从DBNull转换为其他类型”的错误及其解决方法。 #### 错误解析 此错误通常发生在尝试将DBNull....
代码如下:注:MyTools.g_PhotoField为数据库表中的图象字段名称//将图片保存到数据库中 if(this.picPhoto.Image==null) { m_DataRow[MyTools.g_PhotoField]=DBNull.Value; } else { try { MemoryStream ms = ...
p.Value = DBNull.Value; } command.Parameters.Add(p); } } } } /// 将DataRow类型的列值分配到SqlParameter参数数组. private static void AssignParameterValues(SqlParameter[] commandParameters, ...
- 如果参数值为`null`,则将其设置为`DBNull.Value`,这有助于防止数据库端使用默认值。 2. **AssignParameterValues 方法** - **功能**:此方法用于将数据行的列值分配给`SqlParameter`数组中的参数。 - **...
第一种是直接与DBNull.Value进行比较,即if(dr["Name"] == DBNull.Value)。第二种是使用Convert.IsDBNull方法进行判断,即if(Convert.IsDBNull(dr["Name"]))。两种方式在逻辑上是等价的,都是正确的处理方式。作者在...
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { cmdresult = 0; } else { cmdresult = int.Parse(obj.ToString()); } if (cmdresult == 0) { return false; } else ...
在处理数据库结果时,`DBNull.Value`代表数据库中的NULL值。在尝试访问这些值之前进行检查非常重要,以防止运行时异常。如果字段值为NULL,`Eval("timeFromDB")`将返回`DBNull.Value`,所以这里用条件判断避免了...
在C#中使用SQL参数传入空值时,会遇到报错的问题,这是因为C#中的null与SQL中的NULL是不一样的,SQL中的NULL用C#表示出来就是DBNull.Value。SQL参数不能接受C#的null值,传入null就会报错。下面我们来看一个例子: ...
return value == null || value is DBNull; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } ``` 通过...
//假设字段为name, dt已经保存了数据dt.rows[0][“name”] == System.DBNull.Value; //判断第一行数据的name字段是否为空 2 通过IsNull判断 代码如下:DataTable dt; //假设字段为name, dt已经保存了数据dt.rows...
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { cmdResult = 0; } else { cmdResult = int.Parse(obj.ToString()); } if (cmdResult == 0) { return false; } else ...
if (Object.Equals(obj, null) || Object.Equals(obj, System.DBNull.Value)) { return 1; } else { return int.Parse(obj.ToString()); } } ``` 通过构造SQL语句来获取指定字段的最大值,并在此基础上加一...
param.Value = DBNull.Value; // 添加参数到命令 command.Parameters.Add(param); } } ``` 2. **执行 SQL 语句**: `SQLHelper` 类提供了执行 SQL 语句的方法,包括查询、插入、更新和删除等操作。这些方法...
然后,我们添加了一个`SqlParameter`,名为`@DateTimeValue`,类型设置为`SqlDbType.DateTime`,并将其值设置为`DBNull.Value`,这代表SQL中的`NULL`。最后,我们执行`ExecuteNonQuery()`来执行命令,从而将空值插入...
- 检查每列数据是否为`null`,如果为`null`则用`DBNull.Value`替换,这是因为DBF文件不支持直接存储`null`值。 - 代码示例: ```csharp for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt1.NewRow()...