c#如何在数据库之间切换
本文关键字:之间 数据库 | 更新日期: 2023-09-27 18:19:09
好吧,这让我很困惑。我如何切换数据库之间使用c# ?下面的代码不起作用。我也尝试过在SQL mgmt工作室使用它,似乎Go需要自己在一行上工作。
sqlCmd.CommandText = @"USE [" + db + "] GO";
任何想法?
您不应该尝试在命令对象的上下文中更改数据库,而应该在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();
}