다음 코드는 단일 DataSet에서 작동하지만 DataSet 배열로 처리하려고하면 SqlDataAdapter.Fill()이 작동하지 않습니다. 기본적으로 내가 뭘하려고 오전 6 개의 서로 다른 데이터베이스를 연결하고 그들에 동일한 SQL 쿼리를 실행하고 함께 모든 데이터를 수집하고 단일 데이터 그리드보기에서 6 dbs에서 전체 데이터를 보여줍니다. 그것을하는 방법? 문제는 데이터 어댑터에서 mySet[j]
을 채우기하지만 finSet
에 setArray[j]
을 병합한다는 것이다처럼 감사합니다,여러 데이터베이스에서 데이터를 수집하고 단일 DataGridview에서 바인딩하는 방법은 무엇입니까?
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이 작동하지 않습니다 "DataSets의 배열로 : 당신이 기대하지 않는 것은 어떻게됩니까? –