Character literal must contain exactly one character -- 一天一点小知识
编程语言高度抽象化以后,错误也越来越让人难以理解了,
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 -- 一天一点小知识的更多相关文章
- C#中linq报“Character literal must contain exactly one character”的错误提示
后台代码使用linq提示"Character literal must contain exactly one character": 网上看了一下提示在部分linq语句中直接写入 ...
- VS2008项目使用VS2015打开时,出现错误: error CS1012: Too many characters in character literal
VS2008项目使用VS2015打开时,出现错误: error CS1012: Too many characters in character literal ------------------- ...
- java中too many characters in character literal
IDE里发现 too many characters in character literal 翻译过来就是 字符中的字符过多 , 一般情况是:把 多个文字 放在了 '' (单引号)里,应该放到 &q ...
- 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 ...
- 关于Character的digit,forDigit,getNumericValue方法的一点理解
Character类是一个包装类. char这种数据类型是基于原始的Unicode编码的,储存一个char用16个bit,因此定义characters也是16位定长的实体集合. Unicode编码标准 ...
- Linq 动态查询排序
Linq的排序一般是这样写的: query.OrderBy(x => x.Tel).Skip().Take(); 实际使用中排序字段可能是通过字符类型的参数来设置的,于是想这样实现: query ...
- Func 委托
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C# ftp 图片上传多快好省
前言 此篇讲到的是图片上传功能,每个网站必定会有这样类似的功能,上传文件.上传图片等等.那么接下来,看看我们EF+uploadfile+ftp如何玩转上传图片吧 效果预览 具体实现 一个简单数据库 只 ...
- C++ 字面量
https://docs.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=vs-2017 C++ supports ...
随机推荐
- C#微信公众号开发系列教程四(接收普通消息)
微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...
- 【分布式协调器】Paxos的工程实现-cocklebur简介(一)
初识分布式协调器 分布式协调器的“协调”二字让人摸不到头脑,怎么就协调了,用的着协调吗?实际上这个东西在之前就是为了提供分布式锁服务而设计的,伟大的google公司发明了chubby,雅虎随后也推出了 ...
- JavaScript中的类型转换(一)
前言 JavaScript是一种非常灵活的弱类型的语言,它的灵活性的一方面体现在其繁杂多样的类型转换.比如当JavaScript期望使用一个布尔值的时候(比如if语句中)你可以提供任一类型的值,Jav ...
- [Python]新手写爬虫全过程(已完成)
今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...
- 用c#操作Mongodb(附demo)
因为需要,写了一个基于泛型的helper,这样要使用起来方便一点. 为了大家也不重复造轮子,所以发出来希望能帮到谁. 复杂的查询最好用linq,这也是mongodb官方建议的. mongodb的C#配 ...
- scrollTop和offsetTop的区别,scrollTopLeft和offsetLeft的区别
scrollTop和offsetTop的区别:scrollTop是指某个可滚动区块向下滚动的距离,比如向下滚动了10个像素,那么这个元素的scrollTop属性值就是10,这个属性的值是可读写的,且不 ...
- 【JavaEE企业应用学习记录】验证配置
package sanglp; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.validat ...
- jqMobile中的dialog和popup的区别
主要区别是:dialog默认含回退按钮.并且dialog在1.4版中已经过时,1.5中将会移除. 下面是 原文1: Using a Dialog Window as a Popup A jQuery ...
- Eclipse运行内存溢出
VM arguments中添加如下: -Xms512m-Xmx1024m-XX:PermSize=256m-XX:MaxPermSize=256m-Xmn128m
- 强连通 HDU3072
n个点m条边 m条边 权值 简单点说就是求把所有强连通分量连在一起所需的最小花费 不用双向 图是联通的 cost[] 维护到这里的最小花费求和 #include<stdio.h> #in ...