Я постараюсь быть максимально ясным. Основная информация: У меня есть четыре БД на одном сервере, каждый БД имеет таблицу версий БД. Я могу прочитать их, установив соединение с одним из этих DB только с одним ConnectionString и получив результат из одного большого куска SQL-запроса . Они отображаются в datagridview в моем WindowsFormsApp. код выглядит следующим образом:Несколько соединений с различными строками подключения
private void FillDataWithGrid()
{
string ConString = ConfigurationManager.ConnectionStrings["conStrA"].ConnectionString;
//string ConStringFG = ConfigurationManager.ConnectionStrings["conStrB"].ConnectionString;
string CmdString = string.Empty;
string CmdStrBLM = string.Empty;
string CmdStrFg = string.Empty;
DataTable dtBlm = null;
using (SqlConnection connBLM = new SqlConnection(CmdStrBLM))
{
CmdStrBLM =
"SELECT dbname, Version, UpdateTime FROM(SELECT TOP 1 'DB.A' as dbname, Version, UpdateTime " +
"FROM [DB.A].[dbo].[DatabaseVersion] ORDER BY UpdateTime DESC)as tbl1 " +
"UNION ALL " +
"SELECT dbname, Version, UpdateTime " +
"FROM(SELECT TOP 1 'DB.B' as dbname, Version, UpdateTime " +
"FROM [DB.B].[dbo].[DatabaseVersion] " +
"ORDER BY UpdateTime DESC)as tbl2 " +
"UNION ALL " +
"SELECT dbname, Version, UpdateTime FROM(" +
"SELECT TOP 1 'DB.C' as dbname, Version, UpdateTime " +
"FROM [DB.C].[dbo].[DatabaseVersion] " +
"ORDER BY UpdateTime DESC)as tbl3 " +
"UNION ALL " +
"SELECT dbname, Version, UpdateTime FROM(" +
"SELECT TOP 1 'DB.D' as dbname, Version, UpdateTime " +
"FROM [DB.D].[dbo].[DatabaseVersion] " +
"ORDER BY UpdateTime DESC)as tbl4";
SqlCommand cmd = new SqlCommand(CmdString, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt.DefaultView;
Теперь, что я хочу добиться того, чтобы подключиться к каждому из базы данных отдельно от собственной строки подключения.
Будет ли это связано с несколькими соединениями? Если да, то как обращаться с ними с четырьмя различными соединениями?
Упование вы видите мою точку зрения. Любые подсказки или советы были бы высоко оценены. Благодаря!
Что происходит, когда вы запускаете свой собственный код ..? во-вторых, почему бы вам не протестировать код в студии управления sql и посмотреть, получите ли вы результаты, которые вы ожидаете .. если вы это сделаете .. тогда я бы предложил поместить весь этот код sql в хранимую процедуру, а затем выполнить код, заполняющий таким образом datatable .. также 'DataTable dtBlm = null;' почему это объявлено, если вы не используете его ..? – MethodMan
для чего нужны пустые голоса? – Jakubee
код работает отлично. Я просто борюсь с идеей о том, как обращаться с соединением несколько раз. Кроме того, я не могу сделать это с помощью SP. – Jakubee