Sql语句 |
select 1+'1'f |
select 1+1 |
select 1+ null |
执行结果 |
|
|
|
Sql语句 |
select 'a'+'b' result |
select 'a'+'b' |
select 'a'+null |
执行结果 |
|
|
|
查询表中未空的字段,应该使用:字段 is null
select * from UserInfo |
select * from UserInfo where Email =null |
select * from UserInfo where Email is null |
|
|
|
那如何通过程序向数据库插入null字段数据?
--》SqlpParameter中值如果为null,表示”没有提供参数的值”,会报错
可以使用DBNull.Value来赋值,其用来表示数据库中的null
DBNull.Value的使用:
直接赋值,会报错,如下 |
|
如果向new SqlParameter("@RoleID", null)会报如下错: |
The parameterized query '(@RoleID nvarchar(4000))select * from UserInfo where RoleID=@Rol' expects the parameter '@RoleID', which was not supplied. |
通过object变量和DBNull.Value来转变一下,如下代码,执行就可以查找到为null数据 |
public List<UserInfoEntity> testNull(int id)
{ string sqlCmd = " insert into UserInfo (Password) values(@RoleID) "; object objNull = DBNull.Value; if (id != 0) { objNull = id; } return SQLHelper.ExcuteList<UserInfoEntity>(sqlCmd, new SqlParameter("@RoleID", objNull)); } |
public List<UserInfoEntity> testNull(int id) { string sqlCmd = "select * from UserInfo where 1=1"; object objNull = DBNull.Value; if (id != 0) { sqlCmd += " RoleID=@RoleID"; objNull = id; } else { sqlCmd += " RoleID is @RoleID"; } return SQLHelper.ExcuteList<UserInfoEntity>(sqlCmd, new SqlParameter("@RoleID", objNull)); } |