首页 / C# / C#-通用数据库连接,命令,读取器的类
C#-通用数据库连接,命令,读取器的类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-通用数据库连接,命令,读取器的类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1276字,纯文字阅读大概需要2分钟。
内容图文
假设我正在设计一个可以处理任何数据库技术的类,以创建连接,执行命令和检索数据等.
如果我需要为现有RDBMS(如SQL Server,Oracle,FireBird等)创建通用数据库处理类,则应使用{DbConnection,DbCommand,DbParameter,…}或{ IDbConnection,IDbCommand,IDbParameter,…}?
我应该使用类似的代码吗
public bool CreateConnection(DatabaseTypeEnum type)
{
DbConnection conn ;
if(type==DatabaseTye.Oracle)
{
//....
}
}
public DbDataReader GetData()
{
DbCommand comm;
//...
}
要么,
public bool CreateConnection(DatabaseTypeEnum type)
{
IDbConnection conn ;
if(type==DatabaseTye.Oracle)
{
//....
}
}
public IDbDataReader GetData()
{
IDbCommand comm;
//...
}
而且,为什么呢?
解决方法:
嗯…完全不同的问题:)
好都不行
当您这样做时,您将违反开放关闭原则.在该特定位置的switch / if语句使我不舒服:).
我会将实际的创建工作留给Factory类,并且您的代码是否在与SQL Server或DB2或Oracle或其他对象通信,都不在乎.
理想情况下,您的代码应仅与IDbConnection,IDbCommand等或抽象基类(DbConnection,DbCommand等)对话.有时我确实发现您需要上载到特定的提供程序tho(例如使用特定方法的SqlDataReader),但这很少见.
工厂会将这个switch / if语句封装到一个地方,以便于维护.您可以在app.config中进一步抽象实际的创建.因此,在app.config中,您可以选择要支持的数据库后端类型,工厂将在此处进行选择并为您创建必要的数据库内容.
请参阅:this.阅读有关创建DbProviderFactory和连接部分的信息.
内容总结
以上是互联网集市为您收集整理的C#-通用数据库连接,命令,读取器的类全部内容,希望文章能够帮你解决C#-通用数据库连接,命令,读取器的类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。