是否可以同时连接两个SQL数据库?我的意思是从一个数据库我正在阅读记录,并将它们与一些数据(如电子邮件地址)进行比较,并根据数据库中是否存在该电子邮件地址的决定,我将新记录存储在另一个数据库中。
这种双重操作是否可行?
我使用C#.net
的SqlConnection和SqlCommand语句连接数据库谢谢。
答案 0 :(得分:5)
是的,这是可能的。
您可以将值返回到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个不同的SqlConnection
连接到2个不同的数据库。
或者这可以在SQL端完成,如:
IF EXISTS(SELECT Email FROM [Database1].dbo.tbl)
BEGIN
INSERT INTO [Database2].dbo.tbl ..........
END
答案 1 :(得分:1)
可能对你有帮助 或发布您的代码
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 :(得分:1)
这是一个很好的解决方案,但不是正确答案!无需使用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
);