我想实现一个类,ACCESS与SQL SERVER自适应

lapmx 2003-09-19 12:38:28
我想实现一个类,在具体操作时,根本就不知道,是ACCESS还是SQL SERVER,返回值都是公共的DataSet等,这样做可以很方便的将数据库ACCESS与SQL SERVER互换,但这样有什么不好呢?或者有谁写的有现成的类,我参考一下,大家讨论讨论
...全文
80 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjcccc 2003-09-19
  • 打赏
  • 举报
回复
还不如设计一个接口(或抽象类),然后派生两个类:SqlDbAccess和OleDbAccess,重载基类或实现接口。混在一个类有什么好(不符合oo的原则)?
seesea125 2003-09-19
  • 打赏
  • 举报
回复
字符串连接不同,写sql时用oledb方式,语句有些不同,需要自己调试了
比尔咔咔 2003-09-19
  • 打赏
  • 举报
回复

除了连接的字符串不同以外其它的都差不多

不过具体到SQL语句就麻烦了
这俩个在有些地方有差别的
91bct 2003-09-19
  • 打赏
  • 举报
回复
根据配置文件里的连接串等信息,判断数据库类型,并调用相关command进行数据处理,
如下是处理Sqlserver与Oracle的情形,用到三个类(仅供参考):
public System.Data.IDbCommand SelectCommand()
{
//****************************
string cmdtxt="Sql语句";
//****************************
switch( SystemFrames.AppConfig.DbType )
{
case SystemFrames.DBType.SqlServer:
{
SqlCommand cmd = new

SqlCommand();
cmd.CommandText = cmdtxt;
cmd.CommandType =

CommandType.Text;
cmd.Connection

=(SqlConnection) DbOperator.Connection;


//设置对应SqlServer的cmd.Parameter
return cmd;
}
case SystemFrames.DBType.Oracle:
{
OracleCommand cmd = new

OracleCommand();


//***************************************
cmd.CommandText =

"CURSPKG.SP_GET_TOP_ORG";//存储过程


//***************************************
cmd.CommandType =

CommandType.StoredProcedure;
cmd.Connection

=(OracleConnection) DbOperator.Connection;
cmd.Parameters.Add(new

OracleParameter("IO_CURSOR", OracleType.Cursor)).Direction
=

ParameterDirection.Output;
return cmd;
}
case SystemFrames.DBType.OleDB:
{
OleDbCommand cmd = new

OleDbCommand();
cmd.CommandText = cmdtxt;
cmd.CommandType =

CommandType.Text;
cmd.Connection

=(OleDbConnection) DbOperator.Connection;
//设置对应OleDb的cmd.Parameter
return cmd;
}
default:
return null;
}
}
//****************************************************************
/// <summary>
/// 通过SQL命令载入数据
/// </summary>
/// <param name="select">SQL命令</param>
/// <returns>已载入数据的表格</returns>
public static DataTable LoadData(IDbCommand select)
{
DataTable dt = new DataTable();
try
{
DbDataAdapter da =

CreateDataAdapter(select);
da.Fill(dt);
return dt;
}
catch
{
return null;
}
}
//****************************************************************
/// <summary>
/// 创建一个数据适配器的实例。
/// </summary>
/// <returns>数据适配器</returns>
public static DbDataAdapter

CreateDataAdapter(IDbCommand select)
{
switch( AppConfig.DbType )
{
case DBType.OleDB:
{
OleDbDataAdapter da = new

OleDbDataAdapter();
da.SelectCommand =

(OleDbCommand)select;
return da;
}
case DBType.Oracle:
{
OracleDataAdapter da = new

OracleDataAdapter();
da.SelectCommand =

(OracleCommand)select;
return da;
}
case DBType.SqlServer:
{
SqlDataAdapter da = new

SqlDataAdapter();
da.SelectCommand =

(SqlCommand)select;
return da;
}
default:
return null;
}
}
长江支流 2003-09-19
  • 打赏
  • 举报
回复
这是你最佳的选择
http://www.csdn.net/develop/Article/20/20071.shtm
孙亚民出自赛迪网
http://developer.ccidnet.com/pub/disp/Article?columnID=322&articleID=41083&pageNO=1
xavier_lee 2003-09-19
  • 打赏
  • 举报
回复
对!
不符合oo
lansingcy 2003-09-19
  • 打赏
  • 举报
回复
private IDbConnection _Conn = null;
private IDbCommand _Comm = null;
private object _CmBd = null ;
private IDbDataAdapter _DtAp = null ;

public IDataReader DtRd = null;
public DataSet DtSt = null ;

兄弟这是我作的,给分吧。
懒人工作通网络智能办公系统是适用于企事业单位的通用型网络办公软件,融合了云创科技长期从事管理软件开发的丰富经验与先进技术,该系统采用领先的B/S(浏览器/服务器)操作方式,使得网络办公不受地域限制。系统面向中小企业的免费版本,易于安装维护,安全便捷,支持虚拟主机空间。 懒人工作通系统集成了包括内部电子邮件、资讯和公告通知、日程安排、工作汇报、工作流程、公文流转签发和签收、电子印章与电子签名、会议管理、通讯录、论坛、投票、聊天室、云计算手写板、CRM、网络硬盘、短信息提醒、网址大全、历史今天、万年历、记事便笺等数十个极具价值的功能模块,面向集团应用,支持任意多级部门。操作简单、上手快、易用性强,一般懂得上网的用户几乎不用培训就可以开始使用。采用智能流程定制技术可以实现任意业务流程模型、表单、文件流转及审批,同时可以实现文档的痕迹保留、手写签名、电子印章和签名等功能。 懒人工作通在功能上注重实用、易用、安全、稳定,在系统安装上更提供了采用独有技术开发的智能向导安装工具和完善丰富的安装、使用教程手册,用户可在短时间内自行安装完毕,无需专业人员即可自行安装和维护。在性能方面也表现优异,使用普通PC服务器即可实现百人级别的并发应用。 懒人工作通采用基于WEB的企业计算,采用了世界上最先进的微软技术:C#语言、SqlServer/Access数据库引擎和IIS服务器,性能稳定可靠。数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具,保护系统数据安全。多级的权限控制,完善的密码验证与登录机制更加强了系统安全性。   采用B/S三层结构(完全基于WEB开发);   采用C#,遵循Mircrosoft .Net2.0标准;(.net2.0 + SqlServer)   本系统实用客户群体:信息化刚起步的企事业单位。 懒人工作通 v5.5.0.1 更新说明 【修正】新建流程表单,发布流程是为null值错误 【修正】流程模块中当前位置路径文字错误 【修正】主界面右下在Chrome浏览器下时间格式显示错误 【新增】对流程文档及公文文档的查看的权限控制 【修改】优化一些细节页面不兼容格式 【修改】优化工作台根据不同分辨率的字数自适应调制 郑重承诺:本系统无任何后门及其他流氓手段。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧