我希望在使用期间将远程服务器数据库中的单个表的所有详细信息都提供给我的本地数据库
页面加载事件或其他一些好的方法,这应该作为一个后端进程发生,任何人都可以帮助我解决这个问题。
1。在桌面和Web应用程序中创建的单个应用程序 2. 当用户在桌面应用程序中注册新客户时,应在应用程序启动时在Web应用程序Db中添加新客户。
注意:
服务器数据库表列可能与本地数据库略有不同。 每次在服务器中添加新用户时,它应该在加载UserPage.aspx页面时更新本地数据库。
工具使用: ASP.NET,SQL SERVER 2008.
例如 让DB名称为样本,表名称为customer
Table Header in Server DB: Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Link_Id
Table Headers in Local DB: Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Cus_password,Link_Id
此处 Link_id 在桌面和Web应用程序中常用。最初在Web应用程序中,当添加新用户时,所有数据都存储在数据库中,除了
Link_id ,从服务器获取响应并保存在本地数据库中。
感谢。
答案 0 :(得分:7)
我会推荐这种方法:
暂时将登台表同步到服务器(每分钟/小时/天一次,具体取决于您的需要);
A)在本地数据库中创建链接数据库连接。创建一个过程,将登台表中的数据同步到服务器数据库;
B)或者通过读取本地数据库并写入服务器数据库,使用ASP.NET同步数据库。
此解决方案比直接在ASP.NET中执行此操作更好,因为当您的服务器出现可用性问题时,这仍然有效。
一个完整的工作示例:
create table x
( id numeric(18, 0) identity(1,1) not null
, description nvarchar(1000) not null
)
go
create table x_staging
( id numeric(18, 0) not null
, description nvarchar(1000) not null
, synced bit not null default 0
)
go
/*
* create this one on remote server in a database called test
create table remote_table
( id numeric(18, 0) identity(1,1) not null
, source_id numeric(18, 0) not null
, description nvarchar(1000) not null
)
go
*/
create trigger x_ori on x
after insert
as
begin
insert into x_staging
( id
, description
, synced
)
select id
, description
, 0 -- false
from inserted
;
end
go
create procedure sync
as
begin
declare @id numeric(18,0)
declare @description nvarchar(1000)
declare @x_cursor cursor
set @x_cursor = cursor for
select id
, description
from x_staging
open @x_cursor
fetch next
from @x_cursor into @id, @description
while @@fetch_status = 0
begin
insert
into [REMOTE_SERVER].test.dbo.remote_table
( source_id
, description
)
values
( @id
, @description
)
;
update x_staging
set synced = 1
where id = @id
;
fetch next
from @x_cursor into @id, @description
end
close @x_cursor
deallocate @x_cursor
end
go
insert
into x
( description
)
values
( 'test'
)
go
begin
exec sync;
end
调用sync
将执行同步。请注意在其他服务器上创建remote_table
并创建数据库链接。
答案 1 :(得分:0)
你可以使用ms同步框架2.1它允许用户从两侧同步(客户端 - 服务器)...你可以安排同步有趣的呼叫