2012-03-07 23 views
3

2つのSQLデータベースに同時に接続できますか?私はレコードを読んで、電子メールアドレスのようないくつかのデータと比較し、その電子メールアドレスがデータベースに存在するかどうかに基づいて、別のデータベースに新しいレコードを格納しているという決定に基づいています。ASP.net一度に2つのデータベースに接続しますか?

このようなダブル操作は可能ですか?

私は、SqlConnectionオブジェクトを使用してデータベースに接続し、C#の.NETの文

はありがとうをSqlCommandオブジェクトいます。

+1

試したときに問題が発生しましたか? –

+0

もちろん2つの接続オブジェクトを使用できます。あなたは何のトラブルに直面していますか? – AngeloBad

+0

いいえ私はそれを試していない、私はそれを試してみる前にそれについてグーグルでは、それは悪いデザイン/練習と見なされますが、なぜ私はここで尋ねるべきだと思った理由を見つけませんでした。実際に私が使用しているデータベースは2つの全く異なるデータベースですが、既存の電子メールアドレスをチェックするために、2番目のデータベースがクライアントテーブル(第1のデータベース)を必要とします。また、新しい電子メールや既存の電子メールの決定に基づいて非常に重要な操作を実行しています。電子メールが営業部門かサポート部門かどうかを判断するので、このアプローチに問題がある場合は削除します。 – Ahmed

答えて

5

はいこれが可能です。

あなたのasp.netアプリケーションに値を返し、その後、同様に別のデータベースに接続することができ、次のいずれか

Conn1Conn2は、2つの異なるデータベースに接続する2つの異なる SqlConnection年代です
cmdEmailExists SqlCommand = new SqlCommand("SQL HERE...", Conn1); 

if (((int)cmdEmailExists.ExecuteScalar())>0){ 
    cmdInsert SqlCommand = new SqlCommand("SQL INSERT HERE...", Conn2) 
    cmdInsert.ExecuteNonQuery(); 
} 

などこれは、SQL側で行うことができます。

IF EXISTS(SELECT Email FROM [Database1].dbo.tbl) 
BEGIN 
    INSERT INTO [Database2].dbo.tbl .......... 
END 
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); 

//これはあなた を支援することや投稿も...

0

これはいいです正しい答えではない!同じサーバー上で2つの異なるデータベースを使用するために、2つの接続文字列を使用する必要はありません(ユーザーが適切な権限を持っている限り)。接続中に初期カタログを指定して、クエリを実行する場所を定義しますが、ユーザーが他のデータベースでクエリを実行するための十分な権限を持っている場合は、の2つのドットDbを使用してテーブル

このコードは1つの接続文字列を使用して動作します。

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 
); 
関連する問題