C#如何在数据库之间切换

时间:2013-06-19 19:11:24

标签: c# sql database

好吧,这让我很困惑。我如何使用C#在db之间切换?以下不起作用。我也尝试在SQL mgmt studio中使用它,看起来Go需要单独使用才能工作。

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

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

您不应该尝试在命令对象的上下文中更改数据库,您应该在SqlConnection级别更改它。见MSDN

答案 1 :(得分:3)

连接对象上的连接字符串将命名数据库。您应该使用引用新数据库的新连接对象。

答案 2 :(得分:0)

GO is not part of SQL,这是特殊的Sql Server Management Studio(以及其他一些Microsoft实用程序)使用的东西,它标志着“批处理”的分离。每个GO都会转换为C#中的ExecuteXXXXQuery操作。

我假设你的代码比你发布的更多,所以我们可以说你的原始查询是

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();
}