复制DataGridView中的项目c#

时间:2014-03-07 11:16:23

标签: c# mysql

我有这个代码,我将数据放到DataTable,我在DataGridView显示所有内容。 但是,当我看它包含应该存档但仍重复两次的信息。 enter image description here

从mysql数据库中检索数据的代码:

MySqlDataAdapter mySqlDataAdapter;
    DataSet DS0 = new DataSet();
    DataTable DT0;        
    string gender;
private void Filter()
{
     ViewG.DataSource = null;
     ViewG.Rows.Clear();
     command.CommandText = "SELECT * FROM `table2` WHERE s1q2 = @gender";
     command.Parameters.Add("@gender", MySqlDbType.VarChar);
     command.Parameters["@gender"].Value = gender;
     DT0 = DS0.Tables.Add("1Filter");
     mySqlDataAdapter = new MySqlDataAdapter(command.CommandText, connection);

     connection.Open();
     mySqlDataAdapter.SelectCommand = command;
     mySqlDataAdapter.Fill(DS0.Tables["1Filter"]);
     ViewG.DataSource = DS0.Tables["1Filter"];
     connection.Close();   
}

最初,它在开始时从数据库代码(SELECT * FROM table)中检索所有信息并显示在DataGridView上。并且它工作正常,但是当我尝试使用过滤器仅检索例如“女性”问题时。

对于我使用的完整数据:

mySqlDataAdapter.Fill(DS0.Tables["Full"]);
ViewG.DataSource = DS0.Tables["Full"];

对于过滤数据:

mySqlDataAdapter.Fill(DS0.Tables["1Filter"]);
ViewG.DataSource = DS0.Tables["1Filter"];

如果我在应用程序启动时运行用于过滤器的查询,则它不会重复并正确显示。

  

编辑:已解决

2 个答案:

答案 0 :(得分:0)

根据此处发布的代码,性别字符串未分配任何值。因此,您的查询将应用您想要的任何过滤器。

答案 1 :(得分:0)

感谢您的努力,我找到了问题所在。我在MySql上使用临时表,由于某种原因,服务器在连接关闭后没有删除此表。因此,在新查询中,它在同一个表格中添加了相同的项目....