2014-03-07 55 views
0

我有這個代碼,我把數據放到DataTable從哪裏我顯示在DataGridView上的一切。 但是當我看它包含的信息應該是在文件中,但它重複兩次。 enter image description here在DataGridView c中複製項目#

代碼從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

您是否檢查表本身是否有重複項? – Junaith

+0

我檢查了它沒有任何 –

+0

這是臨時表有重複.... –

回答

0

從這裏發佈的代碼,性別串沒有分配任何價值。所以,你的查詢是應用你想要的任何過濾器。

+0

它被分配,問題是不同的 –

0

感謝您的努力,我發現問題出在哪裏。我在MySql上使用了臨時表,並且由於某種原因服務器在連接關閉後沒有刪除這個表。所以在新的查詢中,它在同一張桌子上添加了相同的項目......