`
pumaboyd
  • 浏览: 248824 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DataRow.IsNull 判断 DBNull

阅读更多

今天网站上线时碰到的一个问题。同事原来的做法将导致错误“对象不能从 DBNull 转换为其他类型。”

错误代码:

foreach(DataRow dr in ds.table[0].Rows)

{

     score1 = (dr["score1"] != null) ? Convert.ToInt32(dr["score1"]) : 0

}

而其实dr["score1"] 是一个DBNull ,既数据库中数据为空的概念,而不是对象为Null。

所以这个问题可以引申到为什么Int型没有Null这个概念了,Int类型在你声明的时候其实就已经完成了初始化的工作。而对一个对象而言 String Name ,你完成的也仅仅只是一个声明的动作不会对其进行赋值或称为初始化。有空在写写关于对象方面的内容。这里重点说明一下那么如何判断DBNull这种情况呢!

两种做法:

1:DataRow.IsNull

2:Convert.IsDBNull

Google 标记: DBNull

--=阅读快乐=--

分享到:
评论

相关推荐

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

    通过使用`DataRow.IsNull(columnName)`,可以直接检查列是否为DBNull.Value。 ```csharp foreach (DataRow dr in table[0].Rows) { if (!dr.IsNull("score1")) { score1 = Convert.ToInt32(dr["score1"]); }...

    System.Data.DataSetExtensions.dll

    这个库引入了一些新的方法,使得对数据的处理更加简洁高效,特别是`DataRow.Field<T>`和`DataRow.SetField<T>`这两个方法。 首先,我们来看`DataRow.Field<T>`方法。它允许开发者以类型安全的方式从`DataRow`中获取...

    silverlight下的DataTable

    它有自己的列(DataColumn)和行(DataRow),并提供了事件机制,如RowChanging和RowDeleted,用于监控数据的变动。 在自定义的Silverlight DataTable实现中,可能会包括以下功能: 1. 初始化表结构:定义列名和...

    C#三种判断数据库中取出的字段值是否为空(NULL) 的方法

    2. **使用DataRow.IsNull方法** 如果你使用的是DataRow对象,可以直接调用其IsNull方法,传入字段名来判断。这个方法会检查指定列是否为DBNull。示例如下: ```csharp DataTable dt; // 假设字段为name, dt已经...

    poi导出excel所用jar包,可添加至maven仓库,也可以自己配置,适合各种浏览器

    dataRow.createCell(0).setCellValue(user.getName()); dataRow.createCell(1).setCellValue(user.getPhone()); dataRow.createCell(2).setCellValue(user.getAge()); } // 下载导出(一个流两个头) // 设置头...

    DataSet对象

    1. 添加、删除和修改行:使用`DataRow.NewRow()`创建新行,`DataRowCollection.Add()`添加行,`DataRow.Delete()`删除行,`DataRow.SetModified()`标记为已修改。 2. 遍历数据:通过foreach循环遍历DataTable的Rows...

    DataRow 传换成 DataTable

    DataRow[] dr = null; // 这里只是一个示例,实际中需要替换为获取DataRow数组的实际代码 ``` #### 3. 添加列到DataTable 在将`DataRow`导入`DataTable`之前,需要确保`DataTable`具有与`DataRow`相同的列结构。...

    探讨 ADO.NET DataRow

    DataRow 是 ADO.NET 中 DataTable 类的一个关键成员,代表 DataTable 中的一行数据。在本文中,我们将深入探讨如何使用 ADO.NET 中的 DataRow 对象来操作数据,包括导入、加载、遍历、查找和检查数据。 首先,创建...

    反射,DataRow转换为实体类

    在本篇文章中,我们将深入探讨如何使用反射将`DataRow`对象转换为自定义的实体类。`DataRow`是.NET中的一个核心类,常用于处理数据表(DataTable)的数据。而实体类则是业务逻辑层与数据库交互的模型,它们通常代表...

    poi导出最简单

    Cell cell1 = dataRow.createCell(0); cell1.setCellValue("姓名"); Cell cell2 = dataRow.createCell(1); cell2.setCellValue("年龄"); // 添加第二行数据 dataRow = sheet.createRow(1); cell1 = dataRow....

    Android数据库导出到Excel

    dataRow.createCell(1).setCellValue(cursor.getString(1)); dataRow.createCell(2).setCellValue(cursor.getDouble(2)); dataRow.createCell(3).setCellValue(cursor.getString(3)); } cursor.close(); ...

    POI例子,示例代码

    dataRow.createCell(1).setCellValue(student.getGender()); dataRow.createCell(2).setCellValue(student.getAge()); dataRow.createCell(3).setCellValue(student.getSclass()); dataRow.createCell(4)....

    关于值类型与列类型不匹配,所需类型是 DataRow的解决方案

    例如,如果从 `SqlDataReader` 读取的是 `DBNull.Value`,则应将其转换为适当的默认值(如 `null` 或其他默认值)。 2. **性能优化**:在实际应用中,考虑到性能问题,可以考虑使用 `SqlDataAdapter` 直接填充 `...

    poi导出excel

    dataRow.createCell(0).setCellValue("张三"); dataRow.createCell(1).setCellValue(25); dataRow.createCell(2).setCellValue("男"); // 写入文件 try (FileOutputStream outputStream = new ...

    java 写excel 实例

    dataRow.createCell(0).setCellValue("张三" + i); dataRow.createCell(1).setCellValue(i + 20); dataRow.createCell(2).setCellValue("北京"); } try { // 将工作簿写入文件 FileOutputStream ...

    提取Oracle字段信息(包括字段名,数据类型,备注)并写入word表格

    dataRow.createCell().setCellValue(fields.get(i).columnName); dataRow.createCell().setCellValue(fields.get(i).dataType); dataRow.createCell().setCellValue(fields.get(i).remarks); } ...

    完整SqlHelper类详细中文注释

    if (dataRow.Table.Columns.IndexOf(commandParameter.ParameterName.Substring(1)) != -1) commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)]; i++; } } ``` #### 五、注意事项...

    C# 操作Excle类

    dataRow.CreateCell(1).CellStyle = workbook.CreateCellStyle(); dataRow.CreateCell(1).CellFormula = "30"; // 保存文件 using (var stream = new FileStream("Data.xlsx", FileMode.Create)) { workbook....

    java 导出Excel 使用apache POI.jar 包

    dataRow.createCell(0).setCellValue("用户" + rowIndex); dataRow.createCell(1).setCellValue(30 + rowIndex); dataRow.createCell(2).setCellValue("北京"); } // 输出到文件 FileOutputStream ...

Global site tag (gtag.js) - Google Analytics