C# 如何将所有查询结果附加到DataGridView?
因此,基本上我试图将foreach循环查询的所有结果附加到datagrid2,但我没有得到它。谁能给我指出正确的方向吗C# 如何将所有查询结果附加到DataGridView?,c#,C#,因此,基本上我试图将foreach循环查询的所有结果附加到datagrid2,但我没有得到它。谁能给我指出正确的方向吗 foreach (DataGridViewRow row in dataGridView1.Rows) { if (row != null) { string col1 = row.Cells["F2"].Value.ToString(); strin
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row != null)
{
string col1 = row.Cells["F2"].Value.ToString();
string col2 = row.Cells["F3"].Value.ToString();
string col3 = row.Cells["F9"].Value.ToString();
string like = "'" + "%" + col3 + col1 + col2 + "%" + "'";
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
connection.Open();
string query = string.Format("query" + like);
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
SqlDataAdapter dAdapter = new SqlDataAdapter(cmd);
try
{
DataTable dt = new DataTable();
dAdapter.Fill(dt);
dataGridView2.DataSource = dt;
}
catch (Exception exceptionObject)
{
MessageBox.Show(exceptionObject.ToString());
}
}
}
}
}
基本问题是,在循环的每个迭代中都要为网格绑定数据源,因此它只会显示上一次迭代中的内容。然而,我真的想知道你是否需要一个循环。在循环中查询数据库通常不是一个好主意。在这里这样做的目的是什么?您可以使用循环构建单个查询,然后将网格绑定到该查询的结果吗?不要调用datatable构造函数:datatable dt=new datatable();调用DataTable会清除该表,从而释放旧数据。只需在第一次查询之前调用构造函数即可。@David这样做的原因是我从datagrid1中获取每一行,并为每一行生成一个新查询。@TonyBasita:您为每一行查询一次的原因是因为您为每一行查询一次?这不是理由,这是重复。结果查询是什么?为什么不能将它们组合起来?基本问题是,在循环的每个迭代中都要绑定网格的数据源,因此它只会显示上一次迭代中的数据。然而,我真的想知道你是否需要一个循环。在循环中查询数据库通常不是一个好主意。在这里这样做的目的是什么?您可以使用循环构建单个查询,然后将网格绑定到该查询的结果吗?不要调用datatable构造函数:datatable dt=new datatable();调用DataTable会清除该表,从而释放旧数据。只需在第一次查询之前调用构造函数即可。@David这样做的原因是我从datagrid1中获取每一行,并为每一行生成一个新查询。@TonyBasita:您为每一行查询一次的原因是因为您为每一行查询一次?这不是理由,这是重复。产生的查询是什么?为什么不能合并它们?