编程语言高度抽象化以后,错误也越来越让人难以理解了,

NET编程最常见的一个错误, Object not set to the reference ,过了好久,才明白过来,

就是不明白为啥微软不说  "Null Object can not reference to its property"(空对象不能引用属性)。

昨天碰到一个问题,其实以前也经常碰到,现在解决了,并且发现GOOGLE时候,没有啥好东东可以帮到各位同样碰到问题的兄弟,

就想在这儿分享一下。

相关技术: LINQ, DYNAMIC LINQ

看以下代码:

Dim query = From c In myDataContext.myTable

dim myEndDate as nullable(of datetime)=EndDateEdit.editValue

if myEndDate is not nothing then

  query = query.Where(DateFieldName & "<@0", cDate(myEndDate).AddDays(1))

end if

这样的语句在编译时候是可以通过的,但是运行到第4句, query=query.Where(DateFieldName & "<@0", cDate(myEndDate).AddDays(1))

时就会报告错误:Character literal must contain exactly one character (字符文字必须包含一个字符) 

苍天啊,大地啊,这个错误也太抽象了。

直接说我的解决方案

Dim query = From c In myDataContext.myTable

dim myEndDate as nullable(of datetime)=EndDateEdit.editValue

if myEndDate is not nothing then

  dim myEndDate1 as DateTime=cDate(myEndDate).addDays(1)

  query = query.Where(DateFieldName & "<@0", myEndDate1)

end if

万事大吉。

分析原因,LINQ属于后期编译,建议要给LINQ的变量,不要在LINQ表达式中进行运算,而应该先定义一个变量,运算过后,再在LINQ表达式中使用。

其实这个微软在FOR 循环中使用LINQ时,有提醒到。

Character literal must contain exactly one character -- 一天一点小知识的更多相关文章

  1. C#中linq报“Character literal must contain exactly one character”的错误提示

    后台代码使用linq提示"Character literal must contain exactly one character": 网上看了一下提示在部分linq语句中直接写入 ...

  2. VS2008项目使用VS2015打开时,出现错误: error CS1012: Too many characters in character literal

    VS2008项目使用VS2015打开时,出现错误: error CS1012: Too many characters in character literal ------------------- ...

  3. java中too many characters in character literal

    IDE里发现 too many characters in character literal 翻译过来就是 字符中的字符过多 , 一般情况是:把 多个文字 放在了 '' (单引号)里,应该放到 &q ...

  4. Bug 29041775 : ORA-41401: Define character set () does not match database character set ()

    oracle版本12.2.0.1 Errors in file /u01/app/oracle/diag/rdbms/sibcyb1/CYB111/trace/CYB111_q003_166752.t ...

  5. 关于Character的digit,forDigit,getNumericValue方法的一点理解

    Character类是一个包装类. char这种数据类型是基于原始的Unicode编码的,储存一个char用16个bit,因此定义characters也是16位定长的实体集合. Unicode编码标准 ...

  6. Linq 动态查询排序

    Linq的排序一般是这样写的: query.OrderBy(x => x.Tel).Skip().Take(); 实际使用中排序字段可能是通过字符类型的参数来设置的,于是想这样实现: query ...

  7. Func 委托

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. C# ftp 图片上传多快好省

    前言 此篇讲到的是图片上传功能,每个网站必定会有这样类似的功能,上传文件.上传图片等等.那么接下来,看看我们EF+uploadfile+ftp如何玩转上传图片吧 效果预览 具体实现 一个简单数据库 只 ...

  9. C++ 字面量

    https://docs.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=vs-2017 C++ supports ...

随机推荐

  1. 学习SQLite之路(二)

    下面就是真正关于数据库的一些知识了: 20160614更新 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 1. SQLite创建表: 基本 ...

  2. JavaScript中的算法之美——栈、队列、表

    序 最近花了比较多的时间来学习前端的知识,在这个期间也看到了很多的优秀的文章,其中Aaron可能在这个算法方面算是我的启蒙,在此衷心感谢Aaron的付出和奉献,同时自己也会坚定的走前人这种无私奉献的分 ...

  3. win7 IIS 部署-vs2012开发网站-全是问题啊。。。

    1.文件夹权限everyone2.aspnet_regiis.exe -i 表现为:

  4. go -- 返回的json怎么去掉字段为空的字段啊

  5. 2-ls 显示目录内容

    ls list directory contents 显示目录内容 [语法]: ls [选项] [参数] [功能介绍] ls指令用来显示目录列表,在Linux系统中有着较高的使用率.ls指令的输出信息 ...

  6. JNI系列——简便开发流程

    1.编写Java代码 2.选中工程目录--右键单击Android Tools--Add Native Support 3.输入要生成的库名 4.到工程目录中jni目录下对自动生成文件和.mk文件进行相 ...

  7. Web.config自定义节点configSections

    1.为什么需要自定义节点 为了增加应用程序的可移植性,通常网站需要配置一些自定义的节点,例如:文件上传的路径等,再深入的应用,可以定义工厂方法需要创建的类. 2.configSections使用方法 ...

  8. ActiveMQ_日志信息(五)

    activemq的日志信息主要配置两个文件 1.conf/log4j.properties   2.conf/logging.properties   来自为知笔记(Wiz)

  9. JAVA中AJAX的使用

    AJAX<%@ page language="java" import="java.util.*" pageEncoding="UTF-8&qu ...

  10. Quality Trimming Via Trimmomatic

    已经去除接头(adapter) java -jar trimmomatic.jar PE -threads 20 -phred33 \ left.fastq.gz right.fastq.gz \ l ...