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

本文关键字:之间 数据库 | 更新日期: 2023-09-27 18:19:09

好吧,这让我很困惑。我如何切换数据库之间使用c# ?下面的代码不起作用。我也尝试过在SQL mgmt工作室使用它,似乎Go需要自己在一行上工作。

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

任何想法?

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

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

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

GO不是SQL的一部分,这是SQL Server Management Studio(和其他一些Microsoft实用程序)使用的特殊功能,它标记了"批"的分离。在c#中,每个GO都将转换为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();
}