在C#中将oledbdatareader转换为dbdatareader

编程入门 行业动态 更新时间:2024-10-28 22:24:35
本文介绍了在C#中将oledbdatareader转换为dbdatareader的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如何在C#中动态地将System.Data.OleDb.OleDbDataReader转换为System.Data.Common.DbDataReader

public T GetProjectCodes< t> (字符串Args) { string strProjects =; string QryAllProject =select * from tbl_Project_Details; if(Args ==S) { strProjects = MyTest.GetRecordString(gcnPROJECT,QryAllProject,*,\ n); return(T)Convert.ChangeType(strProjects,typeof(T)); } else { DbDataReader Dr = null; Dr = MyTest.GetDataReader(gcnPROJECT,QryAllProject); //此函数返回Dbdatareader // return(T)Convert.ChangeType(Dr,typeof(T)); // return(T)Convert.ChangeType(Dr,typeof(Dr)); return(T)Convert.ChangeType(Dr,typeof(T)); } // return(T)strProjects; } public static DbDataReader GetDataReader(DbConnection myConnection,string strQry) { DbDataReader ObjmyReader0 = null; DbDataReader ObjmyReader = null; string RetVal = string.Empty; DbCommand myCommand = null; myCommand =(DbCommand)myConnection.CreateCommand(); // myCommand.CommandText =SELECT * FROM Dept; myCommand.CommandText = strQry; if(myConnection.State == ConnectionState.Closed || myConnection.State == ConnectionState.Broken){ myConnection.Open(); } 尝试 { if(ObjmyReader!= null) { if(ObjmyReader.IsClosed == false) { ObjmyReader.Close(); } } ObjmyReader =(DbDataReader)myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); } catch(Exception rdExc) { if((ObjmyReader!= null)&&(ObjmyReader.IsClosed == false)) { ObjmyReader.Close(); ObjmyReader =(DbDataReader)myCommand.ExecuteReader(); } } 最后 { myCommand.Dispose(); ObjmyReader0 = ObjmyReader; // ObjmyReader.Close(); } 返回ObjmyReader0; // return(DbDataReader)Convert.ChangeType(ObjmyReader0,typeof(DbDataReader)); ObjmyReader0.Dispose(); }

请检查并指导我... 谢谢 vilas

解决方案

你为什么要那样做? OleDbDataReader 继承自 DbDataReader 类(参见 MSDN [ ^ ]),因此您可以直接退货,不需要任何转换 。

Hi, how to convert System.Data.OleDb.OleDbDataReader to System.Data.Common.DbDataReader dynamically in C#

public T GetProjectCodes<t> (string Args) { string strProjects = ""; string QryAllProject ="select * from tbl_Project_Details"; if (Args == "S") { strProjects = MyTest.GetRecordString(gcnPROJECT, QryAllProject, "*", "\n"); return (T)Convert.ChangeType(strProjects, typeof(T)); } else { DbDataReader Dr = null; Dr = MyTest.GetDataReader(gcnPROJECT, QryAllProject);// this function returns Dbdatareader //return (T)Convert.ChangeType(Dr, typeof(T)); //return (T)Convert.ChangeType(Dr, typeof(Dr)); return (T)Convert.ChangeType(Dr, typeof(T)); } // return (T) strProjects; } public static DbDataReader GetDataReader(DbConnection myConnection, string strQry) { DbDataReader ObjmyReader0 = null; DbDataReader ObjmyReader = null; string RetVal = string.Empty; DbCommand myCommand = null; myCommand = (DbCommand)myConnection.CreateCommand(); // myCommand.CommandText = "SELECT * FROM Dept"; myCommand.CommandText = strQry; if (myConnection.State == ConnectionState.Closed || myConnection.State == ConnectionState.Broken) { myConnection.Open(); } try { if (ObjmyReader != null) { if (ObjmyReader.IsClosed == false) { ObjmyReader.Close(); } } ObjmyReader = (DbDataReader)myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); } catch (Exception rdExc) { if ((ObjmyReader != null) && (ObjmyReader.IsClosed == false)) { ObjmyReader.Close(); ObjmyReader = (DbDataReader)myCommand.ExecuteReader(); } } finally { myCommand.Dispose(); ObjmyReader0 = ObjmyReader; // ObjmyReader.Close(); } return ObjmyReader0; //return (DbDataReader)Convert.ChangeType(ObjmyReader0, typeof(DbDataReader)); ObjmyReader0.Dispose(); }

Please check and guide me... thanks vilas

解决方案

Why would you want to do that? The OleDbDataReader inherits from DbDataReader class (see MSDN[^]) , hence you may return it directly, without any ''conversion''.

更多推荐

在C#中将oledbdatareader转换为dbdatareader

本文发布于:2023-11-09 17:13:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1572955.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   中将   oledbdatareader   dbdatareader

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!