如何从多个数据库中收集数据并将它们绑定到单个 datagridview 中?
Posted
技术标签:
【中文标题】如何从多个数据库中收集数据并将它们绑定到单个 datagridview 中?【英文标题】:How to collect data from multiple databases and bind them in single datagridview? 【发布时间】:2013-07-21 22:38:34 【问题描述】:以下代码适用于单个 DataSet,但是当我尝试使用 DataSet 数组时,SqlDataAdapter.Fill() 不起作用。基本上我要做的是连接6个不同的数据库并在它们上运行相同的sql查询并将所有数据收集在一起并在单个dataGridView中显示来自6个db的全部数据。怎么做? 谢谢,
DataSet[] mySet = new DataSet[6];
DataSet finSet = new DataSet();
for (int j = 0; j <= 5; j++)
myConnection.Open();
for (int i = 0; i <= specRowCount - 2; i++)
cleanDesc = dataGridView2.Rows[removalPointer].Cells[1].Value.ToString().Replace("'", "''").Trim();
classname = dataGridView2.Rows[removalPointer].Cells[0].Value.ToString().Trim();
str = "use " + myDatabases[j] + " SELECT top 1 x, y, z, t, h, f, d, " +
"s, d, c, s, a, d, f, g, " +
"s, f, a, dFROM tttt where c=1 and a=1 and " +
"d='" + cleanDesc + "' and d= '" + d+ "'";
myAdapter = new SqlDataAdapter(str, myConnection);
myAdapter.Fill(mySet[j], "tttt");
if (countRows != mySet[j].Tables["tttt"].Rows.Count)
mySb.AppendLine(dataGridView2.Rows[removalPointer].Cells[1].Value.ToString());
dataGridView2.Rows.Remove(dataGridView2.Rows[removalPointer]);
else
removalPointer++;
countRows = mySet[j].Tables["tttt"].Rows.Count;
finSet.Merge(setArray[j]);
dataGridView1.DataSource = finSet.Tables["tttt"];
myConnection.Close();
MessageBox.Show("Con closed!");
【问题讨论】:
您对一组数据集说“SqlDataAdapter.Fill 不起作用”:您不期望会发生什么? 【参考方案1】:仅根据您向我们展示的代码,问题似乎是您从数据适配器填充mySet[j]
,然后将setArray[j]
合并到finSet
。因此来自数据适配器的数据永远不会进入finSet
。
另一件事:我很确定这段代码:
DataSet[] mySet = new DataSet[6];
... 将创建一个 DataSet 数组,但该数组将包含每个元素的空值。那是因为您创建了一个数组,但还没有创建 DataSet 对象来填充它。
所以这段代码会抛出一个错误,因为你试图填充一个 Null:
myAdapter.Fill(mySet[j], "tttt");
试试这样的:
mySet[j] = new DataSet();
myAdapter.Fill(mySet[j], "tttt");
【讨论】:
安,非常感谢您的回答。即使在循环 myAdapter.Fill(mySet[j], "tttt"); 的第一次迭代中,我的代码也没有达到这一点。所以,它没有到达合并点。因为它不做第一次Fill。我用 MessageBoxes 对其进行了测试。它什么也没发生,但我期待它填满我的数组。每个数组保存来自不同数据库的结果。然后将这些数组集合合并到 finSet 并在 datagridview 中显示总结果。 我添加了一些额外的细节;这可能会有所帮助。以上是关于如何从多个数据库中收集数据并将它们绑定到单个 datagridview 中?的主要内容,如果未能解决你的问题,请参考以下文章
如何从数据库中检索单个字段数组数据并将它们分开 - 使用 laravel,PHP