将不同设备上的同一应用程序连接到同一数据库

艾曼·沙拉夫(Ayman Sharaf)

我有一个C#winforms应用程序,我想将其安装在两个或多个设备上,但是我希望它们共享同一数据库。关于如何做到这一点的任何建议?

雅罗斯拉夫·卡德莱克(Jaroslav Kadlec)

您的问题过于笼统,因此我尝试为您提供笼统的答案。

您可能正在尝试为更多拥有共享数据数据库的用户创建应用程序。也许最好的选择是将共享数据库公开在服务器上(按目的-lan或wan)并从每个设备连接到该数据库。

您应该提及正在使用的数据库,例如MySQL,MSSQL,...

另一件事是,如果您希望每台设备上都有一个经过离线修改并在时间间隔上同步的数据库,但是我不认为这是解决这种情况的好方法。

您提供更多信息后,我会进行更新。

编辑:首先,您必须-公用MSSQL服务器,这样应用程序将从能够ping通MSSQL服务器的设备启动。其次,您从应用程序创建了到它的连接,我为您提供了示例,您应该根据自己的情况进行最佳修改(例如-而不是为每个查询创建一个连接,而应该使用连接池,事务的使用等)。 )

using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

public class Program
{
    static void Main()
    {
        string Query = "SELECT * FROM [MyTable]";

        //db connection config
        DbConfigInfo Config = new DbConfigInfo()
                                  {
                                      ServerAddress = "MyServer",
                                      DbName = "MyDb",
                                      TrustedConnection = true
                                  };

        //db adapter for communication
        DbAdapter Adapter = new DbAdapter()
                                {
                                    DbConfig = Config
                                };

        //output with data
        DataTable MyDataTable;
        if (!Adapter.ExecuteSqlCommandAsTable(Query, out MyDataTable))
        {
            Console.WriteLine("Error Occured!");
            Console.ReadLine();
            return;
        }

        //do actions with your DataTable
    }   
}

public class DbAdapter
{
    //keeps connection info
    public DbConfigInfo DbConfig { get; set; }

    public bool ExecuteSqlCommandAsTable(string CmdText, out DataTable ResultTable)
    {
        ResultTable = null;

        try
        {
            using (SqlConnection Conn = new SqlConnection(DbConfig.GetConnectionStringForMssql2008()))
            {
                SqlCommand Cmd = new SqlCommand(CmdText, Conn);
                Conn.Open();

                SqlDataReader Reader = Cmd.ExecuteReader();
                DataTable ReturnValue = new DataTable();
                ReturnValue.Load(Reader);

                ResultTable = ReturnValue;

                return true;
            }
        }
        catch (Exception e)
        {
            return false;
        }
    }
}

public class DbConfigInfo
{
    public string ServerAddress { get; set; } //address of server - IP address or local name
    public string DbName { get; set; } //name of database - if you want create new database in query, set this to master
    public string User { get; set; } //user name - only if winauth is off
    public string Password { get; set; } //user password - only if winauth is off
    public bool TrustedConnection { get; set; } //if integrated windows authenticating under currently logged win user should be used 

    //creates conn string from data
    public string GetConnectionStringForMssql2008()
    {
        StringBuilder ConStringBuilder = new StringBuilder();

        ConStringBuilder.AppendFormat("Data Source={0};", ServerAddress)
                        .AppendFormat("Initial Catalog={0};", DbName);

        if (TrustedConnection)
        {
            ConStringBuilder.Append("Trusted_Connection=True;");
        }
        else
        {
            ConStringBuilder.AppendFormat("User Id={0};", User)
                            .AppendFormat("Password={0};", Password));
        }

        return ConStringBuilder.ToString();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用同一数据库在不同应用程序之间执行Django查找?

来自分类Dev

在CloudFoundry的同一数据库上运行两个应用程序

来自分类Dev

如何通过WPF应用程序连接多台计算机以使用同一数据库?

来自分类Dev

多个Django数据库-将模型映射到同一应用程序中的数据库

来自分类Dev

使用一个github存储库将不同的应用程序(不是同一应用程序的不同版本)部署到heroku

来自分类Dev

共享同一数据库Rails的两个应用程序

来自分类Dev

连接到SQL Server;连接到同一数据库的两个网站

来自分类Dev

如何在没有服务器的情况下在多个设备中的同一应用程序之间共享数据库

来自分类Dev

如何在没有服务器的情况下在多个设备中的同一应用程序之间共享数据库

来自分类Dev

开发可与同一数据库交互的Android应用程序和Java应用程序

来自分类Dev

在Kubernetes cron作业中运行的应用程序未连接到同一Kubernetes集群中的数据库

来自分类Dev

在同一应用程序中将Codeigniter连接到mysql和oracle

来自分类Dev

GoogleCloudMessaging#register在同一应用程序/设备中返回不同的ID?

来自分类Dev

连接到同一DBMS上的“外部”数据库

来自分类Dev

安装时设备上的同一应用程序显示两个图标

来自分类Dev

如何在共享同一数据库的两个不同应用程序之间同步持久性上下文?

来自分类Dev

如何在共享同一数据库的两个Rails应用程序中使用rpush?

来自分类Dev

如何创建到同一数据库但具有不同凭据的多个sqlalchemy连接?

来自分类Dev

使用同一应用程序从一个iPad到另一个iPad访问数据库

来自分类Dev

在同一数据库上执行时,dblink会使用不同的会话吗?

来自分类Dev

在同一数据库上执行时,dblink使用不同的会话吗?

来自分类Dev

访问:同一数据库上的 2 个角色具有不同的角色

来自分类Dev

如何通过ASP.NET Web应用程序和WPF桌面应用程序访问同一数据库

来自分类Dev

如何通过asp.net Web应用程序和WPF桌面应用程序访问同一数据库

来自分类Dev

在同一数据库上使用多个FluentMigrator程序集

来自分类Dev

单个应用程序的两个不同数据库框架可以共享同一连接对象吗?

来自分类Dev

Laravel 数据库返回的日期时间与同一数据库中的记录不同

来自分类Dev

Android:使用不同的图标创建同一应用程序的不同APK

来自分类Dev

Jmeter测试在同一应用程序的不同服务器上失败(Spring Webflow + Primefaces)

Related 相关文章

  1. 1

    如何使用同一数据库在不同应用程序之间执行Django查找?

  2. 2

    在CloudFoundry的同一数据库上运行两个应用程序

  3. 3

    如何通过WPF应用程序连接多台计算机以使用同一数据库?

  4. 4

    多个Django数据库-将模型映射到同一应用程序中的数据库

  5. 5

    使用一个github存储库将不同的应用程序(不是同一应用程序的不同版本)部署到heroku

  6. 6

    共享同一数据库Rails的两个应用程序

  7. 7

    连接到SQL Server;连接到同一数据库的两个网站

  8. 8

    如何在没有服务器的情况下在多个设备中的同一应用程序之间共享数据库

  9. 9

    如何在没有服务器的情况下在多个设备中的同一应用程序之间共享数据库

  10. 10

    开发可与同一数据库交互的Android应用程序和Java应用程序

  11. 11

    在Kubernetes cron作业中运行的应用程序未连接到同一Kubernetes集群中的数据库

  12. 12

    在同一应用程序中将Codeigniter连接到mysql和oracle

  13. 13

    GoogleCloudMessaging#register在同一应用程序/设备中返回不同的ID?

  14. 14

    连接到同一DBMS上的“外部”数据库

  15. 15

    安装时设备上的同一应用程序显示两个图标

  16. 16

    如何在共享同一数据库的两个不同应用程序之间同步持久性上下文?

  17. 17

    如何在共享同一数据库的两个Rails应用程序中使用rpush?

  18. 18

    如何创建到同一数据库但具有不同凭据的多个sqlalchemy连接?

  19. 19

    使用同一应用程序从一个iPad到另一个iPad访问数据库

  20. 20

    在同一数据库上执行时,dblink会使用不同的会话吗?

  21. 21

    在同一数据库上执行时,dblink使用不同的会话吗?

  22. 22

    访问:同一数据库上的 2 个角色具有不同的角色

  23. 23

    如何通过ASP.NET Web应用程序和WPF桌面应用程序访问同一数据库

  24. 24

    如何通过asp.net Web应用程序和WPF桌面应用程序访问同一数据库

  25. 25

    在同一数据库上使用多个FluentMigrator程序集

  26. 26

    单个应用程序的两个不同数据库框架可以共享同一连接对象吗?

  27. 27

    Laravel 数据库返回的日期时间与同一数据库中的记录不同

  28. 28

    Android:使用不同的图标创建同一应用程序的不同APK

  29. 29

    Jmeter测试在同一应用程序的不同服务器上失败(Spring Webflow + Primefaces)

热门标签

归档