这是文档对DBNull的解释:
该类用于指示不存在某个已知值(通常在数据库应用程序中)。在数据库应用程序中,空对象是字段的有效值。该类区分空值(空对象)和未初始化值(DBNull.Value 实例)。例如,表可以包含具有未初始化字段的记录。默认情况下,这些未初始化字段具有 DBNull 值。该类还可以用于在 COM Interop 中区分 VT_NULL 变量(与空对象关联)和 VT_EMPTY 变量(与 DBNull.Value 实例关联)。DBNull 从不等于任何值。DBNull 是一个单独的类,这意味着该类只能存在一个实例。这个唯一的实例是 DBNull.Value。访问 SQL 数据库的数据密集应用程序必须使用 System.Data.SqlTypes 类,这些类对空值具有内在支持。我认为可能会出现如下现象,你的某些项Rows[x][x]是对象,而另外的却不是,比如string与String之区别。仅仅是猜想