主要原因是因为EF采用的 DataReader来进行数据的存储,此时connection使用的是同一个. 例如: list = _tzNewsService.GetAll().Where(w => w.EditorId == AdminId || (w.CheckStatus == 3&&_administratorService.GetById(w.EditorId).OrganizeId==currentadmin.OrganizeId)).OrderByDescending(w…
      今天在做会员管理系统搜索时,我发现以前的搜索时间方式不太科学,效率也不是太高.由其是在查询指定的时间相等的时候,我在数据库中都存这样的时间格式"2007-5-22 14:32:12"当我们在查询2007-5-22是否与它相等,结果是不相等的.      所我们都喜欢找其它途径来解决这个问题.但是我发现我们的方法都不是太好,因为我们有的时候对sql sever的语句特性还了解的不够彻底.所以我查询了查sql server有帮助,终于发现个好东西,可以解决这个问题. CONVE…
子查询在DELETE 中唯一可以应用的位置就是WHERE 子句,使用子查询可以完成复杂的数据删除控制.其使用方式与SELECT 语句中的子查询基本相同,而且也可以使用相关子查询等高级的特性.下面的SQL语句用来将所有同类书本书超过3 本的图书删除: DELETE FROM T_Book b1 WHERE ( SELECT COUNT(*) FROM T_Book b2 WHERE b1. FCategoryId=b2. FCategoryId )>3 上面的SQL 语句使用相关子查询来查询所有与…
在UPDATE语句中可以在更新列表中以及WHERE语句使用子查询.下面演示一个将图书的出版日期全部更新为所有图书中的最新出版日期,SQL语句如下: UPDATE T_Book SET FYearPublished=(SELECT MAX(FYearPublished) FROM T_Book) 注意,在MYSQL 中是不支持使用子查询来更新一个列的,所以这个UPDATE 语句无法在MYSQL中执行. 执行完毕查看T_Book表中的内容: FID FNAME FYEARPUBLISHED FCAT…
在使用INSERT语句的时候,一般都是使用它向数据库中一条条的插入数据,比如: INSERT INTO MyTable(FId,FName,FAge)VALUES(1,"John",20) 但是有时我们可能需要将数据批量插入表中,比如创建一个和T_ReaderFavorite表结构完全相同的表T_ReaderFavorite2,然后将T_ReaderFavorite 中的输入复制插入到T_ReaderFavorite2表. 首先我们创建T_ReaderFavorite2 表: MYSQ…
多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e) { //假设表名:Books //列名:BooksName(图书名称) Author(作者) Press(出版社) //多条件查询,要根据用户输入的内容来动态拼接SQL语句 //1.假设如果用户没有输入就查询所有信息 StringBuilder builder = new StringBuild…
LIKE语句的语法格式为: select * from 表名 where 字段名 like 对应值(字符串) 注:主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应字符串的. 下面列举常用的几种标识含义: A:% 表示零个或多个字符的任意字符串: 1. LIKE'Mi%' 将搜索以字母 Mi开头的所有字符串(如 Michael). 2. LIKE'%er' 将搜索以字母 er 结尾的所有字符串(如 Worker.Reader). 3. LIKE'%en%' 将搜索在任何位置包含字…
今天写个小demo的时候发现sql语句里面的username为中文的时候就不能查到正确结果,sql语句如下: String sql = "select * from user where username=? and password=?"; 但是在navicat里面直接查询就能显示,如下图: 这说明了sql语句的中文并没有能正确转化 最后找到了解决办法,在连接数据库的url后面添加?useUnicode=true&characterEncoding=utf8 "jd…
看到别人代码,MySQL数据库中,有下面这个字段,tinyint(1) 这时候java代码中取出来的数据类型就是boolean类型,如果长度 > 1的话,就会变成int类型,特意查了一下,这里参考了http://www.jianshu.com/p/1f70197da6a8 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-type-conversions.html 英语不太好,大概意思就是长度等于1时,对应jav…
select * from 表名 where 列名 = ? and DATEDIFF(hh,时间列,'2016-08-22 15:05:59.000')<9…