linq 判断nullto sql 遇到int字段为null 怎么解决

君,已阅读到文档的结尾了呢~~
简单讲解Linq的课件
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
LINQ之linq to sql
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Linq里where出现null的问题
今天遇到一个问题,怎么在where里判断一个字段是否为null,并且这个字段不是字符串string类型,而是int和GUID类型,折腾了半天终于搞明白了。(由于项目是我半路接手的,问题是前期的同事给我挖了一个坑,我今天就是填坑的)
1.在说这个问题之前,我先说一下的表与C#之间model的对应:
一般数据库中的表我们都可以使用代码生成器(东软代码生成器)生成,其中字段的可空不可空也会给我们生成,如:表
用代码生成器生成的model是:
/// SettingConfiguration:实体类(属性说明自动提取数据库字段的描述信息)
[Serializable]
public partial class SettingConfiguration
public SettingConfiguration()
#region Model
private int _
private string _
private string _
private int? _
public int Id
set{ _id=}
get{return _}
public string Name
set{ _name=}
get{return _}
public string Value
set{ _value=}
get{return _}
public int? ParentId
set{ _parentid=}
get{return _}
#endregion Model
数据库中我们可以看到ParentId这个字段是可以为空的,其他字段不能为空;
对应到代码生成器生成的代码Model就可以看到代码:
public int? ParentId
set{ _parentid=}
get{return _}
主要是int?
有些能不知道这个int?是什么意思?和int有什么区别?这里简单说一下两者之间的区别:int?是可以为null的,而int是不能赋值null的:如下面两个代码:
int? a = //编译成功
//编译错误。
int?允许把null赋值给数值型,这个是为了兼容SQL或者其它数据库中Null这个空值所设定的。
所以:在把数据库的表转化成model时,一定要把可为空的字段转化成对应的可为空的C#字段:
int&&&int?
Guid&&&Guid?
DateTime&&&DateTime?
short&&&short?
decimal&&&decimal?
注意:有人说string为什么不转化成string? 额额额额~~~~~你傻呀,string类型的字段本来就可以为null,何必要写出string?,多此一举。
通过上面的介绍,大家一定对数据库表转化成model有了一定的了解。那么我们就言归正传,说问题:
2.问题的根源
问题的根源就是同是在建model的时候,该转化的没转化,导致我查询一而再、再而三的失败。
对于可以为null的字段,如果要判断这个字段是不是null,比如我们在查询表SettingConfiguration中ParentId是null的数据,我们就可以这样写:
var dtvar = (from des in db.SettingConfiguration
where(des.ParentId==null)
      select des);
这样查询肯定没问题的,可以~~~~嘿嘿嘿嘿嘿嘿~~~
如果你在建model的时候ParentId的字段是
public int ParentId
set{ _parentid=}
get{return _}
这样写的,那你怎也查不到数据,并且还不会报错,让你郁闷终生(我就是这么郁闷的),郁闷郁闷,在网上找了很多方法,都不能查询出数据,
后来改了一下model之后,什么问题都解决了,这就是一个大坑,让我填平了,同时在提醒大家,建model一定要和数据库对应,要不然以后坑的都是自己。
下面提供一些很有用的查询null的方法:
LINQ TO SQL Null 查询
SELECT* FROM[Orders]AS[t0] WHERE([t0].[ShippedDate])ISNULL
fromoinOrders whereo.ShippedDate==null selecto
对应的Lamda表达式为:
Orders .Where(o=&(o.ShippedDate==(DateTime?)null))
对应的SQL语句为:
SELECT[t0].[OrderID],[t0].[CustomerID],[t0].[EmployeeID],[t0].[OrderDate],[t0].[RequiredDate],[t0].[ShippedDate],[t0].[ShipVia],[t0].[Freight],[t0].[ShipName],[t0].[ShipAddress],[t0].[ShipCity],[t0].[ShipRegion],[t0].[ShipPostalCode],[t0].[ShipCountry] FROM[Orders]AS[t0] WHERE[t0].[ShippedDate]ISNULL
fromoinOrders whereNullable.Equals(o.ShippedDate,null) selecto
对应的Lamda表达式为:
Orders .Where(o=&Object.Equals(o.ShippedDate,null))
对应的SQL语句为:
SELECT[t0].[OrderID],[t0].[CustomerID],[t0].[EmployeeID],[t0].[OrderDate],[t0].[RequiredDate],[t0].[ShippedDate],[t0].[ShipVia],[t0].[Freight],[t0].[ShipName],[t0].[ShipAddress],[t0].[ShipCity],[t0].[ShipRegion],[t0].[ShipPostalCode],[t0].[ShipCountry] FROM[Orders]AS[t0] WHERE[t0].[ShippedDate]ISNULL
fromoinOrders where!o.ShippedDate.HasValue selecto
对应的Lamda表达式为:
Orders.Where(o=&!(o.ShippedDate.HasValue))
对应的SQL语句为:
SELECT[t0].[OrderID],[t0].[CustomerID],[t0].[EmployeeID],[t0].[OrderDate],[t0].[RequiredDate],[t0].[ShippedDate],[t0].[ShipVia],[t0].[Freight],[t0].[ShipName],[t0].[ShipAddress],[t0].[ShipCity],[t0].[ShipRegion],[t0].[ShipPostalCode],[t0].[ShipCountry] FROM[Orders]AS[t0] WHERENOT([t0].[ShippedDate]ISNOTNULL)
fromoinOrders whereo.ShippedDate.Value==(DateTime?)null selecto
对应的Lamda表达式为:
Orders.Where(o=&((DateTime?)(o.ShippedDate.Value)==(DateTime?)null))
对应的SQL语句为:
SELECT[t0].[OrderID],[t0].[CustomerID],[t0].[EmployeeID],[t0].[OrderDate],[t0].[RequiredDate],[t0].[ShippedDate],[t0].[ShipVia],[t0].[Freight],[t0].[ShipName],[t0].[ShipAddress],[t0].[ShipCity],[t0].[ShipRegion],[t0].[ShipPostalCode],[t0].[ShipCountry] FROM[Orders]AS[t0] WHERE([t0].[ShippedDate])ISNULL
fromoinOrders whereSystem.Data.Linq.SqlClient.SqlMethods.Equals(o.ShippedDate.Value,null) selecto
对应的Lamda表达式为:
Orders.Where(o=&Object.Equals(o.ShippedDate.Value,null))
对应的SQL语句为:
SELECT[t0].[OrderID],[t0].[CustomerID],[t0].[EmployeeID],[t0].[OrderDate],[t0].[RequiredDate],[t0].[ShippedDate],[t0].[ShipVia],[t0].[Freight],[t0].[ShipName],[t0].[ShipAddress],[t0].[ShipCity],[t0].[ShipRegion],[t0].[ShipPostalCode],[t0].[ShipCountry] FROM[Orders]AS[t0] WHERE([t0].[ShippedDate])ISNULL
这五种方法,都是可以借鉴的。sql int null
sql int null
发布时间: 12:33:02
编辑:www.fx114.net
本篇文章主要介绍了"sql int null",主要涉及到sql int null方面的内容,对于sql int null感兴趣的同学可以参考一下。
sql int nullC#
sql语句int型减null的有关问题
sql语句int型减null的问题set & ANSI_NULLS & ON set & QUOTED_IDENTIFIER & ON GO ALTER & proc & [dbo].[sp_L_PurchaseSortAssetPlan
linq to sql 遇到int字段为null 如何解决
linq to sql 遇到int字段为null 怎么解决C# code
var query = from R in ctx.Review where R.DoMain == &jzs1& select R;
List&Review& list = query.ToList
LINQ to SQL DbType“Int NOT NULL”和 Type“System.Drawing.FontStyle”之间的映射不受支持 的异常
LINQ to SQL DbType“Int NOT NULL”和 Type“System.Drawing.FontStyle”之间的映射不受支持 的错误.我想把Int映射成System.Drawing.FontStyle枚举,编译时出错.错误 3 DBML1005: 在 Type“XXXX”的 Column
关于int跟int?赋值null
关于int和int?,赋值null本帖最后由 zpzhangwenhan 于
17:00:24 编辑
using&System.Collections.G
using&System.Linq
Sql Server
sqlserver减法: int部类减去null类型等于null类型
sqlserver减法: int类型减去null类型等于null类型?大家好。
请问一个问题:
如下有三张表,第三张表示根据前两张表求出每个人的收入和余额,现在我的问题是王五因为没有支出,因为在表一相当于是null,
我写SQL的思路是按照姓名将表一减去表二就是余额,但是现在的结果是表三中王五的余额为null,我
int *定义的有关问题,为什么是NULL
int *定义的问题,为什么是NULLC/C++ code
#include&stdio.h&
int main()
int *a,*b,*c,*d;
printf(&%x %x %x %x\n&,a,b,c,d);
sql server中'NULL'与安插NULL与插入null有没有区别
sql server中'NULL'与插入NULL与插入null有没有区别?
点击右边红色标题查看本文完整版:sql server中'NULL'与插入NULL与插入null有没有区别?sql server中'NULL'与插入NULL与插入null有没有区别?
例如有表 table1 (a,b,c)其中字段c允许
关于数据库里int型数据为null的有关问题?
关于数据库里int型数据为null的问题????数据库里面有个字段isArchive是int型,但是我没有给它赋值,所以它显示是null。接着我用where语句来查找一些数据where isArchive && 2为什么一条数据都没有显示出来????2难道跟null相等吗????求救啊
为什么 int *p = NULL;可以输出,而 *p = NULL; 就报异常呢
为什么 int *p = NULL;可以输出,而 *p = NULL; 就报错误呢?在VC6.0编译器上: void & main() { int & *p & = & NULL; cout & & & & p &nbsp
SQL 中int有关问题
SQL 中int问题在学JDBC,在SQL中定义一个列名的数据类型是int型,貌似好像不能指定长度,在eclip中使用getColumnDisplaySize()一查,长度为11,谁能给我一个解释!最佳解决方案int型在SQL中的长度是11呀,有问题吗?其他解决方案默认好像就是11吧。如果嫌少了,就换其他的类型啊
SQL中的 is null 在linq中如何表示
SQL中的 is null 在linq中怎么表示各位大哥,小弟想问下在 sql中的 where coulumn is null这个语句用linq应该怎么写,急用解决方案C# code
//可空类型用 Nullable&T&.Equals
//如:public int
SQL 里的NULL显示为0解决方法
SQL 里的NULL显示为0我用select 查出来一列字段,有值,但没值的就是NULL,我想在想把NULL显示为0,有值的字段就显示值。怎么处理?case 好像不太行解决方案
SELECT CASE WHEN F1 IS NULL THEN 0 ELSE F1 END FROM TT
Sql Server
sql update 对null字段无法更新?解决方法
sql update 对null字段无法更新?是这样的,假如一张表table1的结构如下:uid name memo m1===================001 张三 null hahaha我是这样用的,update table1 set memo=memo+m1 where uid=001结果是无法更新
为什么sql的取值为null?解决办法
为什么sql的取值为null? & if (RadioButtonList1.SelectedItem.Text == &管理员&) & { & sql = &select * from Users
关于给sql 外键 赋值null有关问题
关于给sql 外键 赋值null问题在sqlserver里面,直接写sql语句给外键赋值null是可以的,但是在vs2008里面,用SqlParameter给赋值为null,就抛异常,不明白为什么,请指教解决方案应该使用dbnull.value
解决方案System.DBNull.Value
解决方案DBNull
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:> 博客详情
摘要: mybatis
sql中查询类型为int的字段,返回null的异常
项目中用mybatis3.x,用sql查询某个表类型为int的字段,那个表是空表,没有数据,结果抛异常了,原因是在对象中的属性为int,空表时,sql查询出来的是NULL,结果赋值时抛异常了。
org.apache.ibatis.binding.BindingException: Mapper method 'getSort' (xx.yy.cc.DxxDAO) attempted to return null from a method with a primitive return type (int).
抛这样的异常。
解决这个问题,是当查出来为NULL时,结一个默认值,如:0。
SELECT&IFNULL(MAX(SORT),0)AS sort FROM web_d_info
SELECT&nvl(MAX(SORT),0) as sort FROM web_d_info
人打赏支持
码字总数 6542
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥

我要回帖

更多关于 linq 判断null 的文章

 

随机推荐