将数据从serverDB同步到本地DB

时间:2014-03-12 07:50:11

标签: c# asp.net .net sql-server-2008


我想从远程服务器数据库到本地数据库获取单个表的所有详细信息,在页面加载事件期间应该发生,因为后端进程可以帮助我解决这个问题。

注意:
 服务器数据库表列可能与本地数据库略有不同  Each time when a new user is added in the server, it should update the local DB when the UserPage.aspx page is loaded.

使用的工具:ASP.NET,SQL SERVER 2008。

例如:
让数据库名称为示例,表名为客户

**Table Header in Server DB:** Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob 
**Table Headers in Local DB:** Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Cus_password

页面加载后,来自服务DB的Customer表中的所有数据都应该同步到localDB

2 个答案:

答案 0 :(得分:0)

假设数据库登录可以访问这两个数据库,您可以通过数据库连接执行以下字符串作为一个命令。

--empty local table
truncate table [sample]..customer;

--fill local table
insert into [sample]..customer 
    (Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob) 
    select Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob  from serverDb..Customer;

这会让你开始,但这不是一个好的架构。您可能希望在服务器数据库中的表上放置一个触发器,只要serverDb中有新行,就会在本地数据库中插入新行。

编辑

显示整个过程

protected void Page_Load(object sender, EventArgs e){
      string sql = @"--empty local table
            truncate table [sample]..customer;

            --fill local table
            insert into [sample]..customer 
                (Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob) 
                select Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob  from serverDb..Customer;";

    var conn = new SqlConnection("Server=localhost;Database=sample;User Id=myUserName;Password = myPassword");
    var cmd = conn.CreateCommand();
    cmd.CommandText = sql;
    conn.Open();
    cmd.ExecuteNonQuery();
 }

答案 1 :(得分:0)

我会建议你SCHEDULE一个工作,每隔15分钟从后端加载记录到localdb。您可以使用管理工作室来实现这一目标。