我有这样的代码,我将数据放在DataTable中,在DataGridView上显示所有内容。但当我看时,它包含的信息应该在文件中,但它重复了两次。

从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"];如果在应用程序启动时运行用于筛选的查询,则它不会正确复制和显示。
编辑:解决
发布于 2014-03-07 11:36:13
从此处张贴的代码来看,性别字符串没有被分配任何值。因此,您的查询正在应用您想要的任何筛选器。
发布于 2014-03-07 11:57:44
谢谢你的努力,我找到了问题所在。我在MySql上使用了临时表,出于某种原因,服务器在连接关闭后没有删除这个表。因此,在新的查询中,它在同一个表中添加了相同的项.
https://stackoverflow.com/questions/22248613
复制相似问题