Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问随机SQL server_C#_Sql Server_Oracle - Fatal编程技术网

C# 访问随机SQL server

C# 访问随机SQL server,c#,sql-server,oracle,C#,Sql Server,Oracle,我设计的应用程序必须能够通过网络访问任何MS或Oracle数据库,必须读取数据库中的所有数据库,列出所有表 最后,用户必须能够下载整个表,并将其加载到应用程序中 用户必须插入一些参数: Ip地址和端口 登录名和密码 然后他必须选择数据库,然后他必须选择表 我在网上查了一下,找到了一些几乎是开箱即用的东西,我发现最好的结果实际上是简洁() 没有更好的图书馆能满足我的需要吗?没有能满足你需要的图书馆。您正在构建一个数据库浏览工具,如SSMS,因此Dapper只是以动态方式获取数据的一种手段。但是,您

我设计的应用程序必须能够通过网络访问任何MS或Oracle数据库,必须读取数据库中的所有数据库,列出所有表

最后,用户必须能够下载整个表,并将其加载到应用程序中

用户必须插入一些参数:

  • Ip地址和端口
  • 登录名和密码
  • 然后他必须选择数据库,然后他必须选择表

    我在网上查了一下,找到了一些几乎是开箱即用的东西,我发现最好的结果实际上是简洁()

    没有更好的图书馆能满足我的需要吗?

    没有能满足你需要的图书馆。您正在构建一个数据库浏览工具,如SSMS,因此Dapper只是以动态方式获取数据的一种手段。但是,您可以使用基本的ADO.NET轻松地完成此操作。
    DataTable
    是一个非常动态的结构,能够满足您的需要

    事实上,尽管我爱整洁,但我认为如果我站在你的立场上,我只会使用ADO.NET,因为你可以将你的交互抽象为只使用接口:
    IDbConnection
    IDbCommand

    没有任何库可以满足你的需要。您正在构建一个数据库浏览工具,如SSMS,因此Dapper只是以动态方式获取数据的一种手段。但是,您可以使用基本的ADO.NET轻松地完成此操作。
    DataTable
    是一个非常动态的结构,能够满足您的需要

    事实上,尽管我爱整洁,但我认为如果我站在你的立场上,我只会使用ADO.NET,因为你可以将你的交互抽象为只使用接口:
    IDbConnection
    IDbCommand

    一些注意事项: 我同意使用ADO.NET的想法。回到SqlConnection和ODP.NET共享的接口

    一些想法:

    谷歌。这就是不同RDBMS的标准

    我的猜测是,您可以编写两个实现相同抽象类的“具体化”(参见上面的IoC链接)。。。其中抽象类有“公共逻辑”…但是如果两个RDBMS之间的工作方式完全相同,那么就有一个“安全值”

    但是由于您的结果是动态的,从某种意义上说,您不会提前知道表/列是什么,因此数据表不是一个坏主意

    另一个想法是看这个“动态数据”项目

    但我不知道(也许不是)这是否为Oracle实现过,可能只是Sql Server。

    一些注意事项: 我同意使用ADO.NET的想法。回到SqlConnection和ODP.NET共享的接口

    一些想法:

    谷歌。这就是不同RDBMS的标准

    我的猜测是,您可以编写两个实现相同抽象类的“具体化”(参见上面的IoC链接)。。。其中抽象类有“公共逻辑”…但是如果两个RDBMS之间的工作方式完全相同,那么就有一个“安全值”

    但是由于您的结果是动态的,从某种意义上说,您不会提前知道表/列是什么,因此数据表不是一个坏主意

    另一个想法是看这个“动态数据”项目


    但我不知道(也许不是)这是否为Oracle实现过,可能只是Sql Server。

    在您开始自己的应用程序之前,我建议您先看看Microsoft企业库数据访问应用程序块;它构建在ADO.Net上,但为应用程序提供了一个与数据库无关的API来进行编码。我用它来对付Sql Server和Oracle


    在您开始自己的应用程序之前,我建议您先看看Microsoft企业库数据访问应用程序块;它构建在ADO.Net上,但为应用程序提供了一个与数据库无关的API来进行编码。我用它来对付Sql Server和Oracle


    我终于发现了使用DbProviderFactory的快乐

    我创建了一个类,该类创建连接字符串,并具有返回连接的不变名称的属性(例如:“System.Data.SqlClient”)

    我以这种方式使用此不变名称和此连接字符串:

     this.Factory = DbProviderFactories.GetFactory(connexionStringBuilder.InvariantName);
     this.Connection = Factory.CreateConnection();
     Connection.ConnectionString = connexionStringBuilder.ConnexionString;
    

    然后,我有了过去所有的ADO.Net查询。

    我终于使用DbProviderFactory找到了快乐

    我创建了一个类,该类创建连接字符串,并具有返回连接的不变名称的属性(例如:“System.Data.SqlClient”)

    我以这种方式使用此不变名称和此连接字符串:

     this.Factory = DbProviderFactories.GetFactory(connexionStringBuilder.InvariantName);
     this.Connection = Factory.CreateConnection();
     Connection.ConnectionString = connexionStringBuilder.ConnexionString;
    

    然后,我有我过去使用过的所有ADO.Net查询。

    有什么原因不能使用
    DbConnection
    /
    DbCommand
    以及
    System.Data
    命名空间中的类似命令吗?不知道你为什么会提到
    Dapper
    ,这是一种ORM,与你的要求是正交的。所有这些都可以通过SQL Server SMO来实现,至少对于SQL Server数据库是如此。@AnnL.,yes和no。no。因为OP需要能够连接到Oracle。@Oded,并不是有意重复你所做的事情。我想我们只是在想同样的话D@neoistheone-没问题-伟大的头脑等等;)有什么原因不能使用
    DbConnection
    /
    DbCommand
    以及
    System.Data
    命名空间中的类似命令吗?不知道你为什么会提到
    Dapper
    ,这是一种ORM,与你的要求是正交的。所有这些都可以通过SQL Server SMO来实现,至少对于SQL Server数据库是如此。@AnnL.,yes和no。no。因为OP需要能够连接到Oracle。@Oded,并不是有意重复你所做的事情。我想我们的想法是一样的D