用代码SLQ2000数据库之间同步问题

lfqsy 2011-03-10 09:29:23
比如说我有2个数据库服务器A和B,数据默认放在B中,在网络畅通的情况下,定时将B中的数据同步更新到A里面去,如果网络中断了,自动检测到网络畅通自动同步更新到A数据库中,我不想用复制、发布、触发器之类的,我用的c#,我想写代码去实现两数据库的更新,如何实现??
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfqsy 2011-03-11
  • 打赏
  • 举报
回复
沉了,没人给建议
lfqsy 2011-03-10
  • 打赏
  • 举报
回复
完整备份,如果数据库多不就是很麻烦,这个要及时性
Daqing 2011-03-10
  • 打赏
  • 举报
回复
那你做的是完全备份吧,同样的道理,用备份语句,
USE master
BACKUP DATABASE DB
TO DISK = 'g:\DBBack0930.bak'

,如果不是完全备份,是扫描数据对比差异也可以再每个语句中运用事务的。
lovelan1748 2011-03-10
  • 打赏
  • 举报
回复
做一个常驻EXE监视,定时更新B的数据到A,一般在深夜负荷小的时候更新,物流中这么做
lfqsy 2011-03-10
  • 打赏
  • 举报
回复
我说的不是数据向B数据库中插入数据,是B数据库向A数据库中同步更新数据
Daqing 2011-03-10
  • 打赏
  • 举报
回复
可用事务啊,当操作数据失败后,可以回滚之。

SqlTransaction是System.Data.SqlClient命名空间下的一个事务类,主要方法有Commit()和Rollback()两个函数,更多方法和属性请参考MSDN。具体代码如下:

static void Main(string[] args)
{

SqlConnection sqlConn = new SqlConnection(
ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);
SqlTransaction sqlTrans = null;
try
{
sqlConn.Open();
sqlTrans = sqlConn.BeginTransaction();//事务开始
SqlCommand sqlComm = new SqlCommand("", sqlConn, sqlTrans);
sqlComm.CommandTimeout = 120; //设置超时时长
sqlComm.CommandType = System.Data.CommandType.Text;

string insertSql = "insert into dbo.TransTestTable values (66,'66');";
string updateSql = "update dbo.TransTestTable set [Name] = '77' where [Id] = 66;";

sqlComm.CommandText = insertSql;
sqlComm.ExecuteNonQuery();//执行insert
sqlComm.CommandText = updateSql;
sqlComm.ExecuteNonQuery();//执行update
//throw new Exception("test exception.the transaction must rollback");
sqlTrans.Commit();//事务提交
}
catch (Exception ex)
{
sqlTrans.Rollback();//事务回滚
Console.WriteLine(ex.Message);
}
finally
{
if (sqlConn.State != System.Data.ConnectionState.Closed)
sqlConn.Close();
}
Console.ReadLine();
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧