我有这个代码,我将数据放到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"];
如果我在应用程序启动时运行用于过滤器的查询,则它不会重复并正确显示。
编辑:已解决
答案 0 :(得分:0)
根据此处发布的代码,性别字符串未分配任何值。因此,您的查询将应用您想要的任何过滤器。
答案 1 :(得分:0)
感谢您的努力,我找到了问题所在。我在MySql上使用临时表,由于某种原因,服务器在连接关闭后没有删除此表。因此,在新查询中,它在同一个表格中添加了相同的项目....