jjzjj

dataReader

全部标签

c# - entityframework 已经有一个与此命令关联的打开的 DataReader,必须先将其关闭

我有以下代码从客户表中检索数据varcustomers=context.CustomerEntities.Include("Addresses").Select(Mapper.Map).ToList();映射器函数,将实体对象映射到业务对象,看起来像这样internalstaticCustomerMap(CustomerEntityentity){if(entity==null)returnnull;returnnewCustomer{Id=entity.Id,Name=entity.Name,Addresses=Map(entity.Addresses)};}现在,上面的代码运行良好

c# - 将 async/await 与 DataReader 一起使用? (没有中间缓冲区!)

我的目标很简单,我想进行异步I/O调用(使用异步等待)-但是:不使用DataFlow依赖项(likeinthisanswer)没有中间缓冲区(notlikethisanswer)Projector函数应作为参数发送。(notlikethisanswer)好的。目前这是我的代码,它的工作是从数据库中读取并将每一行投影到FuncpublicIEnumerableGetSomeData(stringsql,Funcprojector){using(SqlConnection_conn=newSqlConnection(@"DataSource=...")){using(SqlCommand_

c# - 通用关系到复合 C# 对象映射器

我有以下代码能够将Reader映射到简单对象。问题是万一对象是复合的,它就无法映射。如果它本身是一个类,我无法通过检查属性来执行递归prop.PropertyType.IsClass因为调用DataReaderMapper()需要Type。关于如何实现或其他方法的任何想法?另外,目前我不希望使用任何ORM。publicstaticclassMapperHelper{//////extensionMethodforReader:Mapsreadertotypedefined//////Generictype:ModelClassType///this:currentReader///Li

c# - 如何处理多个 ResultSet,每个 ResultSet 有多行? IDataReader.NextResult() 结束 Read()

如何处理多个结果集,每个结果集有多个行?调用NextResult()会中断while循环。我的一些SP返回多个结果集。我正在使用NextResult()处理这些,但是当我这样做并且我的SP只有一个ResultSet时,我看到带有Read()的while循环完成后只剩下第一行。如果不调用NextResult(),我会得到第一个ResultSet的所有行,但当然不会处理第二个和后续的ResultSets?using(IDataReaderreader=storedProcedure.ExecuteReader(CommandBehavior.CloseConnection,paramete

c# - 如何通过 oledb reader 或 excel library、excel datareader 或 NPOI 等(Interop 除外)在 Excel 中检查单元格是否包含公式?

如何通过oledbreader在Excel中检查单元格是否包含公式?System.Data.OleDb.OleDbConnectionconn2=newSystem.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+strFileName+";ExtendedProperties=\"Excel8.0;HDR=NO;IMEX=1\";");conn2.Open();stringstrQuery2="SELECT*FROM["+Table+"]";System.Data.OleDb.Ole

c# - 仅强制从 DataReader 返回单行

我似乎在我的代码中写了很多:using(varreader=cmd.ExecuteReader()){if(reader.Read()){result=newUser((int)reader["UserId"],reader["UserName"].ToString());}if(reader.Read()){thrownewDataException("multiplerowsreturnedfromquery");}}是否有一些我不知道的内置方法可以做到这一点? 最佳答案 我不知道,但是这段代码可以委托(delegate)给一个

c# - 使用 DataReader 和 OLEDB Jet 数据提供程序读取 CSV 文件时,如何控制列数据类型?

在我的C#应用程序中,我使用MicrosoftJetOLEDB数据提供程序来读取CSV文件。连接字符串如下所示:Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\Data;ExtendedProperties="text;HDR=Yes;FMT=Delimited我使用该连接字符串打开ADO.NETOleDbConnection并使用以下命令从CSV文件中选择所有行:select*fromData.csv当我打开OleDbDataReader并检查它返回的列的数据类型时,我发现堆栈中的某些内容试图根据文件中的第一行数据来猜测数据类型。例如,假

c# - DataReader - 硬编码序数?

当从DataReader返回数据时,我通常会使用DataReader上的序号引用来获取相关列:if(dr.HasRows)Console.WriteLine(dr[0].ToString());或if(dr.HasRows)Console.WriteLine(dr.GetString(0));或if(dr.HasRows)Console.WriteLine((string)dr[0]);我一直这样做是因为在早期有人建议我使用dr["ColumnName"]或更优雅的索引方式会导致性能下降。然而,尽管对数据实体的所有引用都变得越来越强类型,但我对此感到更加不舒服。我也知道上面没有检查DB

c# - 我想知道在迭代数据读取器对象时连接状态和 'yield' 对代码性能的影响

这是我用来从数据库中获取数据的示例代码:在DAO层上:publicIEnumerableGetDATA(ICommonSearchCriteriaDtocommonSearchCriteriaDto){using(DbContext){DbDataReaderreader=DbContext.GetReader("ABC_PACKAGE.GET_DATA",oracleParams.ToArray(),CommandType.StoredProcedure);while(reader.Read()){yieldreturnreader;}}}在BO层我调用上面的方法如下:ListGri

c# - 在 C# 中使用 MySQLConnection 无法正常关闭

我尝试编写一个类来简化MySql连接。我的问题是,在我打开一个连接并关闭它之后。它仍然在数据库中打开并被中止。当然,我正在使用“using”语句,但连接仍然打开,并在我退出程序后中止。这是我的代码:using(DatabaseManagerdb=newDatabaseManager()){using(MySqlDataReaderresult=db.DataReader("SELECT*FROMmoduleWHEREActive=1ORDERBYSequenceASC")){foreach(MySqlDataReaderresultindb.DataReader("SELECT*FRO