C# 在datagridview中保留行
为什么我想在一个选定的组合框值上,将行从数据库移动到datagridviewC# 在datagridview中保留行,c#,visual-studio-2010,datagridview,C#,Visual Studio 2010,Datagridview,为什么我想在一个选定的组合框值上,将行从数据库移动到datagridview private void test_Load(object sender, EventArgs e) { string str = "select * from sale_tab"; cmd = new SqlCommand(str, con); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read())
private void test_Load(object sender, EventArgs e)
{
string str = "select * from sale_tab";
cmd = new SqlCommand(str, con);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
comboBox1.Items.Add(reader["Item_name"].ToString());
}
reader.Close();
con.Close();
}
它显示行,但当我单击组合框中的下一个值时,它显示新行,但第一行不保留在gridview中。我希望它保留所有行。例如,我从组合框中单击“书本”,它显示“书本详细信息”,当我单击“计算机”时,它应在“书本详细信息”下添加行
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
str = "select * from sale_tab where item_name='" + comboBox1.Text + "'";
cmd = new SqlCommand(str, con);
sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds, "sale_tab");
dataGridView1.DataMember = "sale_tab";
dataGridView1.DataSource = ds;
con.Close()
}
dataGrid交换所有选项的原因是因为这些行
DataSet ds=新数据集();
sda.填写(ds,“销售标签”);
dataGridView1.DataMember=“销售”选项卡;
dataGridView1.DataSource=ds代码>
如果您创建一个gobal datatable变量,那么您可以在方法中使用一个临时datatable,这样您就可以像这样将datatable组合在一起
Golbal variable:
datatable dtAll = new datatable();
//put this inside the method body
datatable _dt = new datatable();
str = "select * from sale_tab where item_name='" + comboBox1.Text + "'";
cmd = new SqlCommand(str, con);
using (SqlDataAdapter _da = new SqlDataAdapter(_cmd))
{
_da.Fill(_dt);
}
dtAll.Merge(_dt);
dataGridView1.DataSource = dtAll;
con.Close()
希望这有帮助您的dataGrid将所有选项替换掉的原因是因为这些行
DataSet ds=新数据集();
sda.填写(ds,“销售标签”);
dataGridView1.DataMember=“销售”选项卡;
dataGridView1.DataSource=ds代码>
如果您创建一个gobal datatable变量,那么您可以在方法中使用一个临时datatable,这样您就可以像这样将datatable组合在一起
Golbal variable:
datatable dtAll = new datatable();
//put this inside the method body
datatable _dt = new datatable();
str = "select * from sale_tab where item_name='" + comboBox1.Text + "'";
cmd = new SqlCommand(str, con);
using (SqlDataAdapter _da = new SqlDataAdapter(_cmd))
{
_da.Fill(_dt);
}
dtAll.Merge(_dt);
dataGridView1.DataSource = dtAll;
con.Close()
希望这有帮助@pål-jørgenvaldersnesas我是.net新手,请您进一步解释一下。阅读本文,您应该能够理解唯一的区别是您需要创建本地临时数据表,以便将它们与dtAll.merge(dtTemp)合并;本文将介绍如何在组合框中添加数据,但我的问题不是在组合框中添加数据,而是在选择组合框值时,它会在网格视图中按行显示数据,就像我选择第一项时,它会显示所有细节,当我单击第二项时,它应该显示所有细节,thanksIve编辑了答案,提供了您需要修复的确切内容,但本网站的主要目的是引导您找到您需要的答案,不是真的给你code@pål-jørgenvaldersnesas我是.net新手,请您进一步解释一下。阅读本文,您应该能够理解唯一的区别是,您需要创建本地临时数据表,以便将它们与dtAll.merge(dtTemp)合并;本文将介绍如何在组合框中添加数据,但我的问题不是在组合框中添加数据,而是在选择组合框值时,它会在网格视图中按行显示数据,就像我选择第一项时,它会显示所有细节,当我单击第二项时,它应该显示所有细节,thanksIve编辑了答案,以提供您需要修复的确切内容,但本网站的主要目的是引导您找到所需的答案,而不是直接提供代码