DarkBlueMullet
DarkBlueMullet

Reputation: 93

Row to not visible if null

I am using windows form to build an application using datagridview. Every data grid contains an empty row at the top and I suspect that it is the way that I am populating them but as I am coming to the end, I am reluctant to change any of my code as I am a beginner.

Is there a simple way to check if a row if empty, then set that to not visible?

The code that I am using:

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);
}

Upvotes: 0

Views: 96

Answers (1)

spajce
spajce

Reputation: 7082

You could use the IsNullOrWhiteSpace. But before that, you have to check your sql statement, why you have empty rows result.

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);
    }
}

Upvotes: 1

Related Questions