【问题标题】:how should i use database of one sql machine in an another machine for my winform application?我应该如何在另一台机器上为我的winform应用程序使用一台sql机器的数据库?
【发布时间】:2014-03-20 11:25:49
【问题描述】:

我有一个 C# windows 窗体应用程序,它使用数据库中的数据执行许多功能
现在我有一个合作伙伴,他正在他的机器上处理数据库部分
他有数据库,我有所有表格和应用程序逻辑
我应该如何从他的数据库引擎导入他的表? 我们都使用安装了数据库引擎的 SQL Server 2008 R2
我希望当我将我的应用程序发送到他的机器(比如 B)时,我应该能够使用 B 创建的数据库来运行机器 A(我的机器)的应用程序? 我们正在 Visual Studio 2010 中开发应用程序 任何帮助都会很棒。

【问题讨论】:

  • 您是否没有一台可以同时访问的服务器来保存数据库,然后您就在同一个数据库上工作,而不必担心彼此的更改和合并问题?
  • 备份您的数据库,在服务器上恢复它并修改您的连接字符串以指向服务器而不是您的本地实例
  • 通过创建备份文件我们得到.bak 文件!但是我应该如何将数据库指向服务器?在视觉工作室?
  • 登录到您希望使用的服务器,希望是安装了 sql server 的服务器,复制 .bak 文件并创建一个新数据库并恢复您的 .bak 文件

标签: c# sql sql-server winforms ssms


【解决方案1】:

如果它在共享服务器上,您可以使用不同的连接字符串(使用您的数据库或他的数据库等)从不同的来源提取。下面是使用 Config 文件中的 2 个不同连接字符串连接到 2 个不同数据库的示例。

<connectionStrings>
    <add name="Conn1" connectionString="Data Source=YourDataSource;Integrated Security=True"
        providerName="System.Data.SqlClient" />
  <add name="Conn2" connectionString="Data Source=YourDataSource;uid=YourUserID;pwd=YourPassword;" providerName="System.Data.OracleClient" />
</connectionStrings>

Copying a SQL Server Database 也会有帮助,因为如果数据库在他的本地机器上,而你们俩都没有通过 LAN 或某些 Intranet 连接,则无法访问它。它需要被复制或放在一个共享的服务器/位置,你们都可以访问它。否则,请参阅有关如何复制数据库的链接。

Copying data from one database to another。此链接也应该有助于完成您的问题。

但是,如果您只希望“B”能够访问它,并且您不关心访问权限,那么只需部署您的可执行文件并更改其配置文件中的连接字符串。

另外,请参阅 Vladimir 关于“备份”的帖子。

【讨论】:

    【解决方案2】:

    最简单的做法是在相关数据库上运行完整备份。以下是备份脚本示例。

    USE YourDatabaseName;
    GO
    BACKUP DATABASE YourDatabaseName
    TO DISK = 'C:\Backup\YourDatabaseName.Bak' 
        WITH FORMAT,
          MEDIANAME = 'C_FullBackup',
          NAME = 'Full Backup of YourDatabaseName';
    GO
    

    BACKUPhttp://technet.microsoft.com/en-us/library/ms187510.aspx#TsqlProcedure 上的文档

    备份完成后,将文件复制到您的计算机上。现在您需要从备份中恢复数据库。

    RESTORE DATABASE YourDatabaseName
    FROM DISK = N'(path to your BAK file)'
    WITH FILE = 1,  
    MOVE N'(your DB name)' TO N'(your SQL path)database.MDF',  
    MOVE N'(your DB name)_LOG' TO N'(your SQL path)database_LOG.LDF',  
    NOUNLOAD,  
    REPLACE,  
    STATS = 10
    GO
    

    关于RESTOREhttp://technet.microsoft.com/en-us/library/ms186858.aspx的文档

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-10
      • 2017-09-10
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多