2014-02-05 54 views
0

我正在使用Windows窗體構建使用datagridview的應用程序。每個數據網格頂部都有一個空行,我懷疑這是我填充它們的方式,但隨着我到達最後,我不願意更改我的任何代碼,因爲我是初學者。如果爲空,則行不可見​​

有沒有簡單的方法來檢查一行是否爲空,然後將其設置爲不可見?

,我使用的代碼:

private void displayInGrid_Customers(string sqlcmd) 
{ 
    customersDataGridView.Rows.Clear(); 

    connect.Open(); 

    command.Connection = connect; 
    command.CommandText = sqlcmd; 

    reader = command.ExecuteReader(); 
    customersDataGridView.Rows.Add(); 

    while (reader.Read()) 
    { 
     DataGridViewRow rowadd = (DataGridViewRow)customersDataGridView.Rows[0].Clone(); 

     rowadd.Cells[0].Value = reader["Customer_ID"].ToString(); 
     rowadd.Cells[1].Value = reader["Forename"].ToString(); 
     rowadd.Cells[2].Value = reader["Surname"].ToString(); 
     rowadd.Cells[3].Value = reader["Address"].ToString(); 
     rowadd.Cells[4].Value = reader["Town"].ToString(); 
     rowadd.Cells[5].Value = reader["Postcode"].ToString(); 
     rowadd.Cells[6].Value = reader["Date_Of_Birth"].ToString(); 
     rowadd.Cells[7].Value = reader["Phone_Number"].ToString(); 
     rowadd.Cells[8].Value = reader["Email"].ToString(); 
     rowadd.Cells[9].Value = reader["Current_Rental"].ToString(); 
     this.customersDataGridView.AllowUserToAddRows = false; 
     customersDataGridView.Rows.Add(rowadd); 
    } 
    reader.Close(); 
    connect.Close(); 
} 

private void button_view_all_customers_Click(object sender, EventArgs e) 
{ 
    command.CommandText = "SELECT CUSTOMERS.Customer_ID, CUSTOMERS.Forename, CUSTOMERS.Surname, CUSTOMERS.Address, " 
          + "CUSTOMERS.Town, CUSTOMERS.Postcode, CUSTOMERS.Date_Of_Birth, CUSTOMERS.Phone_Number, CUSTOMERS.Email, CUSTOMERS.Current_Rental " 
          + "from CUSTOMERS LEFT JOIN STOCK ON CUSTOMERS.Current_Rental = STOCK.Product_ID"; 
    string cmd = command.CommandText; 
    displayInGrid_Customers(cmd); 
} 
+0

你可以在將它添加到DataGridView之前檢查行元素是否爲空 – ElectricRouge

+0

我該怎麼做? – DarkBlueMullet

回答

1

你可以使用IsNullOrWhiteSpace。但在此之前,你必須檢查你的sql語句,爲什麼你有空行結果。

while (reader.Read()) 
{ 
    DataGridViewRow rowadd = (DataGridViewRow)customersDataGridView.Rows[0].Clone(); 

    if (!string.IsNullOrWhiteSpace(reader["Customer_ID"].ToString())) 
    { 
     rowadd.Cells[0].Value = reader["Customer_ID"].ToString(); 
     //Others Stuff 
     //... 
     this.customersDataGridView.AllowUserToAddRows = false; 
     customersDataGridView.Rows.Add(rowadd); 
    } 
} 
+0

嗨,謝謝你的提示。我有點不確定如何完全實現這一點? rows.clone可能導致問題嗎? – DarkBlueMullet

+0

我認爲不是。問題的原因是你的sql語句。儘量仔細檢查。 – spajce

相關問題