2016-09-09 1 views
-3

Я использую Microsoft SQL Server 2008 R2 и asp.net для C#.Выберите запись из нескольких баз данных

В настоящее время я занимаюсь интранет. Он состоит из множества модулей внутри интрасети. Каждый модуль использует свою собственную базу данных. Обычно я использую строку подключения для вызова в базу данных.

Я планирую сделать главную страницу для управления всеми незавершенными задачами внутри каждого модуля. Средства на главной странице, я покажу все ожидающие задачи всех модулей. Поскольку все они используют разные строки соединений, какие подходы могут быть использованы для достижения этого?

В приведенном ниже примере показано, как получить доступ к базе данных через одну строку подключения:

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 

string strsql = " select * from User "; 

SqlConnection con = new SqlConnection(connectionString); 
SqlDataAdapter da = new SqlDataAdapter(strsql, connectionString); 

con.Open(); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
con.Close(); 
con.Dispose(); 
+1

Вместо определения 'Initial Catalog' в вашей' ConnectionString' вы можете оставить его, а в '' CommandString' вы можете сделать запрос в конкретной базе данных следующим образом: 'select * from [YOUR_DATABASE]. [Dbo]. [Пользователь] '. –

+0

Если у вас разные базы данных, у вас есть два варианта: создать связанные серверы и присоединиться к ним в хранимой процедуре в одной из баз данных или получить данные из обеих баз данных в коде один за другим. – komsky

ответ

0

Создать процедурный, где вы можете позвонить таблицу другой базы данных с соответствующими именами Db.

create proc proc_name 
as begin 
select * from [DB_name1].dbo.tablename 
union all 
select * from [DB_name2].dbo.tablename 
end 

сейчас вызывают процесс из вашего кода позади.

Независимо от того, что когда-либо дб имя в строке подключения, по-прежнему можно получить доступ к

Примечание: проверить БД не имеет права доступа к другим БД.