C#创建数据库如何指定路径并能使用多种DB系统?

已知道C#3.0创建数据库可以使用SMO方式。但是这样的话,写出的程序就只能使用SQL Server数据库系统,而不能使用ACCESS,ORACLE等其他数据库系统了。对吧?

比如C#代码中,把用户输入的DB文件存储路径保存在变量A中,输入的DB文件名保存在变量B中,要在A的路径下,创建以B为名称的数据库,同时又要兼顾到允许用户使用多种数据库系统,如何做?
我都没有看到任何答案……怎么回事?

要想把这个功能实现的好一点,最好回去找一些资料,看一看“工厂模式”是什么,这种设计模式能够解决这个问题。
具体方法是:定义一个接口,实现数据访问的所有方法,再写几个类,分别实现不同数据库的操作。添加一个配置文件,在里面写入键值及对应的类名称,利用反射技术获取相应的类的实例,只要这些做好了,需要那个数据库,只要修改相应的反射代码就可以使用相应类的实例,使用其对应的数据库。
这么说有些抽象,但是学习程序就是这样,刚开始很难。
大概是这样写的:
//定义接口,把所有数据库操作都放进去
interface DataAccss{……}
//操作Sql Server数据库的类,实现接口中对应的数据库操作方法
public class SqlAccess:DataAccess
{……}
//操作Oracle数据库的类
public class OracleAccess:DataAccss
{……}
//利用反射取得类的实例
public class GetClass
{……}

注意关键词:工厂模式
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-17
逻辑:
创建多个类如 sql类access类
在不同的类里写下相同的方法,如void conn()

实现:
选择
object connect;
switch(选择的类型)

case "sql":
{
connect=new sql;break;//或者通过输入路径的后缀判断类型
}

...
调用
connect.conn();
这样就能实现动态连接不同的数据库
第2个回答  2009-05-13
好深奥。可以学习。嘻嘻
第3个回答  2009-05-15
你要是听不懂我给你说的答案,就找个人给你解释下!

我是按照你所书写的问题 进行解决的!

至于你所表达的意思和你要解决的问题不一致的话!

那只能怪你自己没有表达清楚!

刚入门的小屁孩!还挺屌的!!一看就是学生!!

不过这样也好!!

说明下一代还有希望!!

C#创建数据库如何指定路径并能使用多种DB系统?
具体方法是:定义一个接口,实现数据访问的所有方法,再写几个类,分别实现不同数据库的操作。添加一个配置文件,在里面写入键值及对应的类名称,利用反射技术获取相应的类的实例,只要这些做好了,需要那个数据库,只要修改相应的反射代码就可以使用相应类的实例,使用其对应的数据库。这么说有些抽象,但...

C#怎么指定路径
string path=Application.StartupPath+@"\\文件名";(Application.StartupPath这个是你运行的.exe文件所在的文件夹路径)

C#如何创建数据库文件.edb
使用 ADOX 和 Visual C#.net 创建 Access 数据库中打开一个新的 Visual C#.net 控制台应用程序。在 解决方案资源管理器 中,右击 引用 节点并选择 添加引用。在 COM 选项卡上选择 Microsoft ADO 分机 2.7 DDL 和安全,单击 选择 以将其添加到 选定的组件,然后单击 确定。从代码窗口中的所有代码...

使用C#开发一个带数据库的应用程序,如何安装部署并可以在其它机器上面...
看你使用什么数据库了。一般可以把数据文件、数据库驱动和程序打包在一起,在安装的时候同时安装数据库文件并注册\/附加数据文件就可以了。或者如Access这样的文件数据库就更简单了,一般直接和程序文件打包在一起,安装的时候解压到相应文件夹下即可。

大师们,如何让c#备份数据库到指定地点
@dbname sysname='', --要备份的数据库名称,不指定则备份当前数据库 @bkpath nvarchar(260)='', --备份文件的存放目录,不指定则使用SQL默认的备份目录 @bkfname nvarchar(260)='', --备份文件名,文件名中可以用\\DBNAME\\代表数据库名,\\DATE\\代表日期,\\TIME\\代表时间 @bktype nvarchar(10)='DB', --...

c#中如何设置相对路径
这个目录下.应该这样写:public static string str = @"Data Source=.;AttachDbFilename=" + Application.StartupPath + @"\\数据库\\新建文件夹\\考试系统.mdf;Integrated Security=True";假设你的数据库,与你的exe程序,在同一目录下:public static string str = @"Data Source=.;AttachDbFilename="...

c#中新建的数据库应该放在哪里才能使应用程序访问的到?
一,如果你用的Access数据库,那么和你的程序文件放到一起,写对了连接字符串就能访问到;using System.Data.OLEDB;string connStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + HttpContext.Current.Server.MapPath("~\/myDB\/data.mdb");"~\/myDB\/data.mdb" 代表程序文件存放目录下...

c#数据库怎么连接datasource用当前文件目录
1、获取数据库文件的全路径:需要知道数据库文件的全路径。使用SQLServer,那么这是一个.mdf或.mdbx文件。对于别的数据库,如MySQL或SQLite,需要知道数据库文件的全路径。2、创建连接字符串:在C#中,连接字符串通常在一个名为connectionString的字符串变量中定义。3、创建SqlConnection对象:使用Sql...

C#中 与数据库连接的 绝对路径和相对路径的问题
例如d:\\我的文档\\Visual Studio 2008\\Projects\\WindowsFormsApplication3\\WindowsFormsApplication3\\Database1.mdf,这个是你文件的绝对地址,那么当当前目录为d:\\我的文档\\Visual Studio 2008\\Projects\\WindowsFormsApplication3\\WindowsFormsApplication3\\folder,(假设存在),那么相对该目录的相对路径为"..\\Data...

C#里面 db的使用方法
看到DataClassesDataContext ,如果我没猜错的话,你的数据库操作使用的是linq .在linq中的Context 包含了对数据库表的映射及所有针对表的CRUD操作,是一种ORM。这里的db就代表的是当前数据操作的上下文。Books应该是映射Books表的一个实体类。

相似回答
大家正在搜