2013-06-19 2 views
0

Хорошо, это меня полностью озадачивает. как переключаться между db с помощью C#? Нижеследующее не работает. Я также попробовал использовать его в студии SQL mgmt, и кажется, что Go должен быть на линии сам по себе, чтобы работать.C# как переключаться между базами данных

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

Любые идеи?

+3

есть 2 строки подключения, то ссылки, которые один вам нужен в то время – Jonesopolis

ответ

0

GO is not part of SQL, что-то особенное 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(); 
} 
+0

ahh имеет смысл для меня. Это сработало отлично! Благодарю. – user1158745

3

Строка подключения вашего объекта соединения будет называть базу данных. Вы должны использовать новый объект подключения, который ссылается на новую базу данных.

+1

Prolly более разумный, чем изменение dbs на лету, +1 – cmsjr

4

Вы не должны пытаться изменить базу данных в контексте объекта команды, вы должны изменить ее на уровне SqlConnection. См. Это MSDN

Смежные вопросы