2014-02-05 3 views
0

Я использую форму окна для создания приложения с использованием datagridview. Каждая сетка данных содержит пустую строку вверху, и я подозреваю, что это то, как я ее заполняю, но по мере того, как я заканчиваю, я не хочу менять какой-либо из своих кодов, поскольку я новичок.Строка не отображается, если null

Есть ли простой способ проверить, если строка пуста, а затем установить, что не видно?

код, который я использую:

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

Смежные вопросы