【发布时间】:2015-04-21 16:10:01
【问题描述】:
我会尽量说清楚。基本信息如下: 我在同一台服务器上有四个数据库,每个数据库都有一个数据库版本表。 我可以通过与这些数据库之一建立连接来阅读这些内容 只有一个 ConnectionString 并从一大块中获取结果 SQL 查询。这些显示在我的 WindowsFormsApp 的 datagridview 中。 代码如下:
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 management studio 中测试代码,看看你是否得到了你期望的结果.. 如果你这样做了.. 那么我建议将所有这些 sql 代码放入一个存储过程中,然后执行代码从而填充它datatable..还有`DataTable dtBlm = null;`如果你不使用它,为什么要声明它..?
-
什么是反对票?
-
代码运行良好。我只是在为如何多次处理连接而苦苦挣扎。另外,我不能用 SP 做到这一点。
标签: c# datagridview datatable connection-string