注意 reader["yjID"] == DBNull.Value而不是null

自己做的项目吃的大亏,由于原始数据yjID这个字段里面什么都没有,所以,这个地方报错,说是字符串格式不支持,应该为DBNull.Value而不是null,DBNull.Value代表数据库(用的access)

i.Yjid = reader["yjID"] == DBNull.Value ? 0 : int.Parse(reader["yjID"].ToString());

时间: 2024-10-27 07:38:06

注意 reader["yjID"] == DBNull.Value而不是null的相关文章

返回零长度的数组或者集合,而不是null——Effective Java 读书笔记

/** * 返回零长度的数组或者集合,而不是null * * @author 刘向峰 * */ public class Shop { private List<Object> objectList; // 零长度数组常量被传递给toArray方法,以指明所期望的返回类型 private final static Object[] EMPTY_OBJECT_ARRAY = new Object[0]; public Shop(List<Object> objectList) { s

返回零长度的数组或者集合,而不是null

<<Effective Java>> 第四十三条:返回零长度的数组或者集合,而不是null 如果一个方法的返回值类型是集合或者数组 ,如果在方法内部需要返回的集合或者数组是零长度的,也就是没有实际对象在里面, 我们也应该放回一个零长度的数组或者集合,而不是返回null.如果返回了null,客户端程序员就要检测返回的是不是null,然后才能 进行下一步操作,否则就会引发NullPointException.但是如果是返回的的是空数组或者集合,就不会再后续的使用这个对象上,引发 空指针

无符合条件的记录,SUM函数返回NULL。返回0而不是Null

但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如下面的方法来处理: SELECT COALESCE(SUM(isnull(filed,0)), 0) as [filed1] FROM table1 行了,这下就不用费事去处理返回结果是否为NULL的情况了. COALESCE 函数的意思是返回参数列表中第一个为空的值,该方法允许传入多个参数,该函数也是SQL中的标准函数.

Effective Java 之-----返回零长度的数组或集合而不是null

如下代码,通常用户列表为空时,会习惯性返回null,因为这时会认为:null返回值比零长度数组更好,因为它避免了分配数组所需要的开销. private final List<UserBean> UserList = null; public List<UserBean> getUserBean(){ if(UserList.size() == 0){ return null; }else{ return UserList; } } 但这种观点是站不住脚的,原因如下: 1) 在这个级

第43条:返回零长度的数组或者集合,而不是null

private final List<Cheese> cheesesInStock = ...; public Cheese[] getCheese() { if(cheesesInStock.size() == 0) return null; ... } 如果返回null, 在客户端处理代码就需要有额外的代码来处理null返回值: Cheese[] cheeses = shop.getCheeses(); if(cheeses != null && Arrays.asList

第七章:方法。ITEM43:返回零长度的数组或者集合,而不是null 。

1 private final List<String> l = ... ; 2 3 public String[] getString() { 4 if(l.size() == 0) 5 return null ; 6 } 7 8 String[] s = getString(); 9 //对于一个返回null而不是零长度数组或者集合的方法,每次都要判断!=null 10 if(s != null && Arrays.asList(s).contains("a&qu

参数化查询 但未提供该参数(将null插入数据库)

当你是使用参数化查询时为参数赋值时,比如command.Parameters.Add("@a",SqlDbType.Text,30).Value=a;当a=null是将报错: 错参数化查询 '(@a varchar(100)....' 需要参数 '@a',但未提供该参数 只是因为你给a的值为null,而数据库中的null(空)是System.DBNull 类型的不是同一类.所以在插入空的时候要用DBNull,而不是null, 所以可以这样改: command.Parameters.Ad

SqlParameter.Value = NULL 引发的数据库异常

摘自:http://www.cnblogs.com/ccweb/p/3403492.html using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = new SqlConnection(@"Data Source=PC201305032338\SQLEXPRESS;Initial Catalog=DBTest;Integrated Security=True"); ; cmd.Connection.Open(); cmd

DBNULL和NULL【转载】

Null是.net中无效的对象引用. DBNull是一个类.DBNull.Value是它唯一的实例.它指数据库中数据为空(<NULL>)时,在.net中的值. null表示一个对象的指向无效,即该对象为空对象. DBNull.Value表示一个对象在数据库中的值为空,或者说未初始化,DBNull.Value对象是指向有效的对象. DBNull在DotNet是单独的一个类型 System.DBNull .它只有一个值 DBNull.Value .DBNull 直接继承 Object ,所以 DB