0

わかりました、これは私を完全に困惑させています。C# を使用してデータベースを切り替えるにはどうすればよいですか? 以下は機能しません。また、SQL mgmt studio で使用してみましたが、動作するには Go が単独で接続されている必要があるようです。

sqlCmd.CommandText = @"USE [" + db + "] GO";

何か案は?

4

3 に答える 3

3

接続オブジェクトの接続文字列は、データベースに名前を付けます。新しいデータベースを参照する新しい接続オブジェクトを使用する必要があります。

于 2013-06-19T19:12:53.433 に答える
0

GOSQL の一部ではありません。これは、Sql Server Management Studio (およびその他の Microsoft ユーティリティ) が使用する特別なものであり、「バッチ」の分離を示します。すべての GO はExecuteXXXXQuery、C# のアクションに変換されます。

あなたのコードはあなたが投稿したもの以上のものであると想定しているので、元のクエリが

select * into #t from foo 
use [someOtherDatabase]
GO
insert into foo select * from #t

これがC#で来るのは

using(var cmd = SqlCommand("", connectionString))
{
    cmd.CommandText = @"select * into #t from foo
                        use [someOtherDatabase]";
    cmd.ExecuteNonQuery();
    cmd.CommandText = "insert into foo select * from #t";
    cmd.ExecuteNonQuery();
}
于 2013-06-19T20:03:33.057 に答える