原文连接: https://bbs.csdn.net/topics/390871995
现有2个以上数据库服务,要保证他们间的数据一致。
现在楼主这么写 是否妥当? 会有什么问题吗?
private void btn_submit_Click(object sender, System.EventArgs e)
{
string strconn = System.Configuration.ConfigurationManager.AppSettings["dbconnect"];
SqlConnection cnn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand();
SqlTransaction transaction = null;
string strconn2 = System.Configuration.ConfigurationManager.AppSettings["dbconnect2"];
SqlConnection cnn2 = new SqlConnection(strconn2);
SqlCommand cmd2 = new SqlCommand();
SqlTransaction transaction2 = null;
try
{
cnn.Open();
cnn2.Open();
string strSql = "insert into shop (code, name) values('" + lbcode.Text.Trim() + "','" + TxtName.Text + "')";
// 先插入A库
transaction = cnn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
// 后插入B库
transaction2 = cnn2.BeginTransaction();
cmd2.Transaction = transaction2;
cmd2.Connection = cnn2;
cmd2.CommandType = CommandType.Text;
cmd2.CommandText = strSql;
cmd2.ExecuteNonQuery();
// 提交事务
transaction.Commit();
transaction2.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
transaction2.Rollback();
}
finally
{
cnn.Close();
cnn2.Close();
}
}
本来楼主想用建立链接服务器的方法,在数据库中通过存储过程来同步数据。
可是阿里云的RDS不支持连接服务器,同时也不提供SA的权限。
除了上面同时写2个库的办法,不知道有何高人还有其他的建议?
现在楼主这么写 是否妥当? 会有什么问题吗?
private void btn_submit_Click(object sender, System.EventArgs e)
{
string strconn = System.Configuration.ConfigurationManager.AppSettings["dbconnect"];
SqlConnection cnn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand();
SqlTransaction transaction = null;
string strconn2 = System.Configuration.ConfigurationManager.AppSettings["dbconnect2"];
SqlConnection cnn2 = new SqlConnection(strconn2);
SqlCommand cmd2 = new SqlCommand();
SqlTransaction transaction2 = null;
try
{
cnn.Open();
cnn2.Open();
string strSql = "insert into shop (code, name) values('" + lbcode.Text.Trim() + "','" + TxtName.Text + "')";
// 先插入A库
transaction = cnn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = cnn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
// 后插入B库
transaction2 = cnn2.BeginTransaction();
cmd2.Transaction = transaction2;
cmd2.Connection = cnn2;
cmd2.CommandType = CommandType.Text;
cmd2.CommandText = strSql;
cmd2.ExecuteNonQuery();
// 提交事务
transaction.Commit();
transaction2.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
transaction2.Rollback();
}
finally
{
cnn.Close();
cnn2.Close();
}
}
本来楼主想用建立链接服务器的方法,在数据库中通过存储过程来同步数据。
可是阿里云的RDS不支持连接服务器,同时也不提供SA的权限。
除了上面同时写2个库的办法,不知道有何高人还有其他的建议?
<div marginwidth="0" marginheight="0" scrolling="no" width="100%">
</div>
</div>
<!-- <div class="question_wrap"><span>问题点数:</span><em>分</em></div> -->
</div>
标签:
c#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)