是否可以同时连接到两个SQL数据库?我的意思是从一个数据库中读取记录,并将它们与一些数据(如电子邮件地址)进行比较,并根据是否在数据库中存在该电子邮件地址的决定,我将另一个数据库中的新记录存储起来。ASP.net一次连接两个数据库?
这种双重操作可能吗?
我连接使用的SqlConnection数据库和SqlCommand的C#.NET的声明
谢谢。
是否可以同时连接到两个SQL数据库?我的意思是从一个数据库中读取记录,并将它们与一些数据(如电子邮件地址)进行比较,并根据是否在数据库中存在该电子邮件地址的决定,我将另一个数据库中的新记录存储起来。ASP.net一次连接两个数据库?
这种双重操作可能吗?
我连接使用的SqlConnection数据库和SqlCommand的C#.NET的声明
谢谢。
是的,这是可能的。
您可以返回一个值,以你的asp.net应用程序,然后连接到另一个数据库,如:
cmdEmailExists SqlCommand = new SqlCommand("SQL HERE...", Conn1);
if (((int)cmdEmailExists.ExecuteScalar())>0){
cmdInsert SqlCommand = new SqlCommand("SQL INSERT HERE...", Conn2)
cmdInsert.ExecuteNonQuery();
}
凡Conn1
和Conn2
是连接到2个不同的数据库,2个不同的SqlConnection
的。
或者这可以在SQL年底完成,如:
IF EXISTS(SELECT Email FROM [Database1].dbo.tbl)
BEGIN
INSERT INTO [Database2].dbo.tbl ..........
END
可能是这可以帮助你 或发布我们的代码
SqlConnection con1 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["con1"].ConnectionString);
SqlConnection con2 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["con2"].ConnectionString);
SqlCommand cmd = new SqlCommand("select * from table1", con1);
SqlDataReader dr;
con1.Open();
dr = cmd.ExecuteReader(CommandBehavior.SingleResult);
while (dr.Read())
{
// ....
}dr.Close()
//your condition then fire insert commnd with connection con2
SqlCommand insertcmd = new SqlCommand("insert into table2", con2);
SqlDataAdapter dap = new SqlDataAdapter(insertcmd);
// ...
这是很好解决方案,但不是正确的答案!没有必要使用2连接字符串,以便在同一台服务器上使用2个不同的数据库(只要用户具有正确的权限)。我们在连接过程中指定初始目录,来定义我们想要运行的查询,但如果用户有足够的权限对其他数据库执行查询,他可以用两个点Db..table符号做!
此代码将使用一个连接字符串!
SqlConnection con = new SqlConnection(@"Use-connection-string-here");
SqlCommand cmd = new SqlCommand(
"select * from Table1 t1 left join Database2..Table2 t2 on t1.id = t2.id", con
);
你面对任何问题时,你试过吗? – 2012-03-07 11:08:48
当然可以:使用两个连接对象。你有什么麻烦吗? – AngeloBad 2012-03-07 11:10:46
不,我还没有尝试过,我在谷歌上搜索一下尝试之前,发现它被认为是不好的设计/做法,但并没有发现到底为什么,所以我想我应该问在这里。实际上,我使用的数据库是两个完全不同的数据库,但第二个数据库还需要客户端表(在第一个数据库中)来检查现有的电子邮件地址。我也是执行基于新的或现有的电子邮件的决定非常关键的操作,因为这将决定邮件是否是有关销售部门或支持部门,所以如果这种做法有任何问题,然后我放弃它。 – Ahmed 2012-03-07 11:19:55