关于EF+LINQ查询提示数据库状态已关闭的问题

上周5 运行程序是没有问题的 期间也就关机重启了一次 然后现在再运行就出现LINQ 查询不出来数据了,然后找到一个错误提示是 ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为已关闭。。我很无奈
数据库连接是没问题的 就是在查询的时候提前关闭了
图片说明这是一个查询方法
图片说明声明
我使用另一个方法查询单条数据是没有问题的。就是用 Filter 这个方法会有问题。
17.00更新------经过一下午的摸索,解决了这个BUG。原因在评论区

3个回答

错误原因:
连接的当前状态为已关闭。或者只创建了Connection对象,没有调用
Connection.Open()方法;
也就是:connection.State != ConnectionState.Closed
解决方法:
调用Connection.Open()方法;
或者添加判断,例如下面的代码:
if (MyIni.Gs_con.State != ConnectionState.Closed)
{
OleDbCommand mysc = new OleDbCommand(sqltext, MyIni.Gs_con);
//tools.MB(sqltext);
result = tools.fieldnullint(mysc.ExecuteScalar());
if (result == 0) return false;
}

https://blog.csdn.net/testcs_dn/article/details/47681027

sinat_36203916
浮沉与木 但是我并没有像你这样去做 而是修改了 我的逻辑代码。
一年多之前 回复
sinat_36203916
浮沉与木 很感谢回答,经过我不懈努力终于解决了这个BUG。
一年多之前 回复
caozhy
贵阳老马马善福专门编写代码的老马就是我! 应该就是这个问题了。
一年多之前 回复

判断状态是否关闭,如果关闭执行打开

这个是我公司给我的一个实习项目,让我做一个关于权限的框架。
用的DDD思想进行开发。表示对于新手来说 难度不小。
然后上周的时候用户查询整个流程是可以跑通的,虽然写了不少垃圾代码出来,毕竟还在摸索。
今天上午运行代码的时候 就开始出错,程序是没有报错的, linq 查询也有返回的是 IQueryable类型的结果,我是想将它转换成集合。
于是在应用层就有了

public IList<Users> GetUser()
        {
            return _userdb.Find(p => p.Id != null) as IList<Users>;
        }

这样的操作。 就是这里的代码错了

IQueryable 类有自带的toList() 方法,并不需要强制转换成IList, IList方法是继承了IEnumerable 这里的错误就是
IQueryable和IEnumerable 这两个类的区别导致。详细的区别可以查一下资料。
然后优化了一下代码 将 DbContext 也进行了注入,删除了垃圾代码。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于EF+LINQ查询提示数据库状态已关闭的问题
上周5 运行程序是没有问题的 期间也就关机重启了一次 然后现在再运行就出现LINQ 查询不出来数据了,然后找到一个错误提示是 ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为已关闭。。我很无奈 rn数据库连接是没问题的 就是在查询的时候提前关闭了rn![图片说明](https://img-ask.csdn.net/upload/201805/14/1526264942_107700.png)这是一个查询方法 rn![图片说明](https://img-ask.csdn.net/upload/201805/14/1526264963_588655.png)声明rn我使用另一个方法查询单条数据是没有问题的。就是用 Filter 这个方法会有问题。rn17.00更新------经过一下午的摸索,解决了这个BUG。原因在评论区
EF Linq 多对多查询
A表(Akey,AName)rnB表(Bkey1,Bkey2,BName)-两个主键rnAB表(Akey,Bkey1,Bkey2)-三个都是主键,关系表(EF 未生成关系实体,在A实体中有B集合,B实体中也有A集合)rnrnrnvar a=from d in db.Arnwhere d.AName.Contains("xx")rnselect Arn我想在已有的这个a上在查找出B表中Bkey1="Bxx"的arn?rnrn这个地方要注意一下Bkey1有可能会重复是一个分类,Bkey2也有可能重复,这两个构成的不会重复rnrn多对多的资料查了很多,好像没有找到这种情况的,请大家帮忙指点,谢谢
EF下lambda与linq查询&&扩展方法
1. linq查询数据WebTestDBEntities db = new WebTestDBEntities();1.1 linq查询所有列数据 var userInfoList = from u in db.UserInfo where u.ID == 10
EF中LINQ查询原理
在接触Linq之前,一直听说Linq被微软抛弃。后来才发现被抛弃的是Linq to SQL这种专用于操作Sql Server的轻型ORM,微软宣布停止更新Linq to Sql,把开发的重点从 Linq to SQL 转移到了 Linq to Entities。 在EF中使用Linq查询数据的基本形式是这样的: var result = from t in Table where t
linq和EF查询的用法和区分
我们做项目时,难免会遇到用的不知道是啥,及把linq和EF搞混了 今天我带领大家梳理下思路: 首先说linq查询,然后介绍EF查询 1.linq查询 当我们使用linq查询时,转到定义会调到Queryable 类, 那么也就是说,这个类封装了linq所有查询的方法,那么我们来研究研究这个类 MSDN上是这样解释的:提供一组用于查询实现IQueryable&lt;T&gt;的数据结构...
LINQ TO EF和LINQ TO SQL
LINQ TO EF和LINQ TO SQL有什么本质区别吗?rn能否举例说明一下rn经理让我学LINQ TO EFrn可是我一搜几乎全是LINQ TO SQL的
Linq to EF 问题 急
from p in Entities.yhbrnjoin o in Entities.aspnet_Membership on [color=#FF0000]p.sUserID equals o.UserId.ToString()[/color]rnrnyhb和Membership是用UserID对应的,rnrn但是Membership中的userID是 Guid类型的,而yhb里面的userID是string类型的,rnrn问题:怎么让他们内连接,上面的tostring我知道是不行的。。rnrn2.界面上有个用户是否启用的条件,[color=#FF0000]是和否以及请选择[/color],对应aspnet_Membership 里面的bool字段rnIsLockedOut,这里做为条件怎么查?rnrn也就是我传进来的IsUse是一个int类型的,如果>1 直接true否则用IsLockedOut=IsUse(但是bool和int不能在linq to EF)里面对应。。rnrnwhere serchmodel.IsUse > 1 ? true : o.IsLockedOut == bool.Parse(serchmodel.IsUse.ToString())rn这样作为条件是错的。rnrn很急,如有知道,小虎多谢(300分奉上)。
linq - EF
请问下,下面sql语句:rnrnselect mo=1 union all select 2 union all select 3rnrn如何改写成linq - ef的语法?rnrn谢谢.
LINQ TO EF
表 MagazinernID titlern1 1111rn2 2222rn3 3333rn4 4444rn5 5555rn6 6666rn7 7777rn8 8888rnrn表 ArticlernID MagazineID MagazineToIDrn1 1 3rn2 1 3rn3 1 4rn4 1 4rn5 2 6rn6 2 1rn7 3 8rnrn需要统计 Article表 MagazineID 和MagazineToID出现最多次数的数据rn需要结果:rn1出现了5次 所以排第一rn3出现3次 排第二rnrn表 MagazinernID titlern1 1111rn3 3333rn2 2222rn4 4444rn6 6666rn8 8888rn5 5555rn7 7777rn请教下该怎么写
关于 LINQ查询问题
各位大侠 我用LINQ TO SQL 查询了多条数据 rn并想把查询过的 更新为已读rn有没有什么效率高点的方法 望解答
关于Linq To Ef和Ado.Net 的选择??
如果要做一个类似拍卖的网站,使用Linq To Ef和Ado.Net 该选择哪个?rn数据量和访问量都差不多在几万左右,打算使用MVC4。rn个人感觉用EF的话,开发效率会高很多,但担心性能上的问题。rn百度谷歌了一下,很多人做出比较,但有说差不多的,也有说慢很多,也有说快一些。rnrn而类似拍卖网的网站,修改操作非常频繁,所以不知道具体用哪种会好一些?rn
关于Linq与EF和三层架构的关系
初学Linq和EF,还没搞清它们之间的关系,到底哪个更成熟,更方便一些?rn还有如果用Linq或EF,那么开发三层架构时将linq和lambda放在数据访问层还是业务逻辑层呢?rn请指教,谢谢。
关于linq查询的问题
现在有数据表结构如下rntagsrntid intrntname varchar(20)rnrnfalshrnfid int rnfname varchar(20)rntid intrnrn表falsh中的tid为表falsh的外键rn我想用linq实现如下效果rnrn查询tags表中的前6条数据rn查询每个tags对象中falsh对象的前5条数据rn最后返回一个list对象,每个返回的tags.falsh中只有前5条数据rn请问用linq应该怎么实现呢
关于linq to EF的问题,左连接查询
左连接查询屁股后面跟两个条件的怎么写,尼玛愁死我了。rn这里人多就发这里了。rn刚开始学习ling to EF。rn新手啊,求大牛指点。rn var tuserMessageChaintUsermessageRecord = from tm in tuserMessagern join tur in tUsermessageRecord1rn on tm.GUID equals tur.tUserMessageGUIDrn into temprn from tur in temp.DefaultIfEmpty()rn select new Tm = tm, Type = ((tur.GUID == null) ? 1 : 0) ;rnon tm.GUID equals tur.tUserMessageGUID 我想判断2个字段是否相等,语法上怎么写?rn满分200!rn顺便说句还是感觉sql语句比较灵活啊。
关于EF的复杂查询的问题.....
数据库有 MenuCode,MenuName,ParentCode 三个字段..rnrn菜单模型有 MenuCode,MenuName,ParentCode,ParentName 四个字段rnrnEF里面有什么办法能一次性的把菜单的list取出来,并且根据ParentCode把每个model的 ParentName 填充呢? rnrn就是把每个菜单的上级菜单的名字通过一个查询或者什么取出来.....rnrnsql的话可以直接这样写 Select A.*,B.MenuName as ParentName From sys_menu A left join sys_menu B on B.MenuCode = A.ParentCodernrnEF不知道怎么弄了....rnrn想过先把列表取出来,再用foreach赋值..但是感觉好笨啊......
使用EF配合Linq语句进行查询
//创建一个EF对象 var ef = new DemoDatabaseEntities1(); //查询 Grade 表的数据 Id &amp;amp;gt; 4 的记录 IQueryable&amp;amp;lt;Grade&amp;amp;gt; temps = from g in ef.Grade ...
使用Linq、ef查询全表的语句
1.数据库 第一步:需要添加一个实体对象模型 第二步:可以使用linq to sql与ef查询数据库 后台代码 前台代码
EF LinQ Where条件无法查询中文
[img=https://img-bbs.csdn.net/upload/201805/30/1527666426_705176.png][/img]rnrnrn数据库数据rnrnrnrnC#代码rn[img=https://img-bbs.csdn.net/upload/201805/30/1527666452_116795.png][/img]rnrn此时指定查询名字为aaa,查询成功返回对应实体rnrnrn再将查询名字更改为中文张三rn[img=https://img-bbs.csdn.net/upload/201805/30/1527666526_49827.png][/img]rn查询结果为空rn将where条件中u.Name进行trim()再比较依然查询不到rnrn数据库为MySql,Name字段类型为varchar,长度255,字符集utf-8
求个问题 Linq to EF
Linq to EF 是不是只能整条整条的信息取出而不能每条信息只取某些子段?rn如何可以那业务逻辑方法的返回数据类型是什么?给个简单的实例再好不过了,谢谢
ef中linq查询效率问题
表Student,对应类Studentrnrn列:Id(主键) PId(外键,引用表Person的主键Id) TeacherId(一个TeacherId可对应多条Student记录)rnrnrn表Person,对应类Personrnrn列:Id(主键) Name Age Address Hobby Height Weightrnrnrnrn在一个数据库上下文MyDbContext中,有这两个实体的集合。rnrnDbSet StudentsrnrnDbSet Personsrnrnrn现在要查询TeacherId为11的学生的详细信息(就是Person里边的那些信息),怎么写linq语句效率查询效率最高
关于EF链接数据库的问题
我使用EF连接数据库出现了一个问题,就是链接后没有了主外键关系,数据库里是写好主外键关系的,链接其他表都可以,就是链接这几张表主外键关系不见了[img=https://img-bbs.csdn.net/upload/201804/10/1523333402_274347.png][/img][img=https://img-bbs.csdn.net/upload/201804/10/1523333412_817421.png][/img]rnrnrn求大神解答
关于关闭程序时,提示"程序已关闭"
//这段程序是在继承了CAknViewAppUi类中的rn//Test.dll是继承了CAknViewrnif ( lib.Load ( _L("Test.dll")) != KErrNone)rn User::Exit ( 40);rnCreate = lib.Lookup (1);rniTest = (CTest*) Create();rnAddViewL(iTest );rn当我AddViewL(iTest );然后在退出程序会提示程序已关闭。rn如果我不加AddViewL(iTest );就不会提示。。。rn是什么原因有人知道吗?
Linq to EF 添加多表
rn[code=csharp] public List AddList(List entityList)rn rn using (Entities db = new Entities())rn rn foreach (T entity in entityList)rn rn db.Entry(entity).State = EntityState.Added; rn rn db.SaveChanges();rn rn return entityList;rn rn[/code]rnList 怎么存放多张表 ,不是一张表的多个记录集合
应用开发之Linq和EF
本章简言 上一章笔者对于WinForm开发过程用到的几个知识点做了讲解。笔者们可以以此为开端进行学习。而本章我们来讲一个跟ORM思想有关的知识点。在讲之前让我们想一下关于JAVA的hibernate知识点。hibernate也是ORM框架。记得hibernate里面有一个叫HQL。先不管HQL的好与坏。主要是明白HQL的目地是什么。ORM的思想就是为了让用户在操作数据的时候用上面
EF LINQ 写法
IEnumerable AreaList = GetAreaId(AreaId);rnvar ManagerList = LinqDBContext.ManagerOrg.Where(x => AreaList.Contains(x.AreaId)).Select(x => x.ManagerOrgID).ToList();rn不能在查询运算符(Contains 运算符除外)的 LINQ to SQL 实现中使用本地序列。rn求解为什么啊,怎么改
linq to ef 实现in操作
linq to ef 实现in操作
linq to ef入门困惑
DbaseEntities db = new DbaseEntities(); rnrn public static Admin GetAdminByID(string UserID)rn rn return db.Admin.Where(a => a.userID == UserID).SingleOrDefault();rn rn rnrn刚学 linq to ef ,就这个简单的方法,老是提示 return db.Admin.Where(a => a.userID == UserID).SingleOrDefault()未将对象设置引用到实例,求高手指点。
EF架构+Linq
C# CS、BS的EF+Linq开发架构,支持三种:SQLServer\Oracle\MySql数据库,可以结合MVC使用。
linq to ef 怎么分组,,
按datetime中的日期,,而不是时分秒。。rn [code=csharp]( ... ).GroupBy(r => r.StartTime.ToString("yyyy-MM-dd"))[/code]rnrn这种写法报错, 表达式树不能包含动态操作 rnrn那该怎么分组呢,,按日期分组。。。。。。。。。。。
LINQ EF 多外键关联
比如rnclass a string Name;int a1;int a2;b b;rnclass b string Name;int b1;int b2;rna和b是通过a1 = b1 还有a2 = b2两个条件关联的,实体上要如何定义?
Linq EF 数据查询
表 News rn字段 ID Type(类别) Displayrn1000 1 5rn1001 1 5rn1002 1 5rn1003 1 5rn1004 2 4rn1005 2 5rn1006 2 5rn1007 2 4rn1008 3 5rn1009 3 4rn想要获取数据rn1001 1 5rn1002 1 5rn1003 1 5rn1005 2 5rn1006 2 5rn获取指定类别(1和2)最新display=5的三条数据rnModel.Context.News.Where(it=>it.Display==5) rn小弟不才 请问后面怎么写?
急!! 关于linq的查询问题
List listID 第一个集合 List listNElse 第二个集合rn比如 一个集合里面有2条数据,一条id为1 一条id为2 rn 另一个保存id集合的对象里面保存的id集合为1,3,4 rn那么查询的结果就是id为2的对象 集合是对象类型 请问这个linq查询语句应该怎么写?rn
关于LINQ查询的函数返回值问题
将LINQ查询语句写成方法,方法返回值问题:rnrn[code=C#]rnpublic static IEnumerable GetAdmins()rn rn return from c in dataconn.AdminUserrn select c;rn rn[/code]rn上面这个是正确的,但是下面这个:rn[code=C#]rn public static ? GetSessions()rn rn var querysql = from c in dataconn.UserInforn from o in c.Sessionrn select new Session() o.SessionId, o.Server.ServerName, c.UserName, o.ContectStatus ;rn return querysql;rn rn[/code]rnrn问号的地方该用什么呢?
关于ResultSet已关闭的问题。
for(int i=0 ; i symbols = new ArrayList();rn try rn while(rs.next())rn //查找板块下股票rn plateId = rs.getInt(1);rn queryStockOfPlateSql = "select symbol from t_plate_stock_relation where pid = " + plateId;rn rs1 = DB.executeQuery(stmt1, queryStockOfPlateSql);rn while(rs1.next())rn symbols.add(rs1.getString(1));rn rn this.generatePoint(plateId,symbols);rn symbols.removeAll(symbols);rn rn catch (SQLException e) rn e.printStackTrace();rn rn rn在此段代码第二次执行到while(rs.next())时报错,说rs已关闭
EF外键查询问题
var model = a.Select(n => n.b).Distinct().ToList();rnrn如上, a查询的是A表, 里面有200条数据.。b关联的是B表, 里面有10调数据。rn但是上面model 查询出来还是200条。应该是要<=10条数据才对。rnrnrn
ado提示对象已关闭是什么问题?
我调用m_recordset.update()时总是说我对象已关闭,究竟什么原因?m_recordset在同一函数里面建立(createinstant)和打开(open)的
客户端登陆数据库总提示“数据库已关闭”
linux+oracle 9i,我建立了一个数据库,刚建好时都正常,客户端也可以访问,倒入数据以后,发现从服务器上看数据库的状态是online,表也都能打开,但用oracle客户端登陆,却总是报错:数据库已关闭。请教是什么问题。谢谢!
LINQ又没人 发过来看看 EF查询问题 3Q
表一 发帖表 groupPostsrnID TITLE CONTENT AddTimern1 AAA AAA 2013-6-28 09:00rn2 BBB BBB 2013-6-28 14:00rn3 CCC CCC 2013-6-28 10:00rn4 DDD DDD 2013-6-28 12:00rn5 EEE EEE 2013-6-28 13:00rnrn表二 回复表 CommentsrnID TargetID CONTENT ADDTIMErn1 1 AAA 2013-6-28 11:00rn2 1 AAA 2013-6-28 10:00rn3 2 BBB 2013-6-28 14:00rn4 3 CCC 2013-6-28 10:00rn5 1 AAA 2013-6-28 09:00rn6 4 DDD 2013-6-28 12:00rn7 3 CCC 2013-6-28 13:00rnrnrnrn先按照Comments表 ADDTIME 最新时间(1个帖子对应MAX ADDTIME就可以了)排序,再按照groupPosts表 AddTime进行排序 该怎么查询呢rn查询结果:rn发帖表 groupPostsrnID TITLE CONTENTrn2 BBB BBBrn3 CCC CCCrn4 DDD DDDrn1 AAA AAArn5 EEE EEE rnrn请指点下 谢谢 现在写的LINQ是这样的 但是结果不对rn var query =rn from p inrn context.groupPostsrn join c inrn context.Comments.GroupBy(x => x.TargetID)rn .Select(g => new TargetID = g.Key, ADDTIME = g.Max(y => y.AddTime) )rn on p.ID equals c.TargetID into leftGrouprn from c in leftGroup.DefaultIfEmpty()rn orderby c.ADDTIME descending, p.AddTime descendingrn select p;
关于linq查询
我在admin数据库中有两行资料rn1 luo luorn2 zhou zhourn在Linq查询语句中rn var result = from v in bd.adminrn select v;rn int value = 0;rn foreach (var v in result)rn rn if (v.adminName == txtUserName.Text)rn rn if (v.adminPassWord == txtPassWord.Text)rn rn value = 1;rn rn elsern value = 2;rn rn else value = 3;rn rnrn为什么如果输入luo zhou的话,会查不到呢?虽然这是我想要的结果,但是逻辑上我好混乱啊,大家解答解答啊~~rn我记得用sql语句查的,都貌似会查出 luo zhou 存在的。
Linq to entity /linq to sql /EF 区别
Linq to entity /linq to sql /EF 这三个分别是什么,分别说下相同和不同,谢谢!
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法