aurelio
aurelio

Reputation: 207

OleDB Data not reading from the correct row

I have the following method created and previously stock1Label to stock3Label were able to output the correct values from the database however after i added more rows to my ProductsTable, source.Rows[0][0], [1][0], etc. seems to be taking values from row 8 onwards of my table instead of row 1, anyone know why this is happening?

    private void UpdateStocks()
    {
        string query = "SELECT pQty FROM ProductsTable";
        OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, DBconn);
        DataTable source = new DataTable();
        dAdapter.Fill(source);
        stock1Label.Text = source.Rows[0][0].ToString();
        stock2Label.Text = source.Rows[1][0].ToString();
        stock3Label.Text = source.Rows[2][0].ToString();
        stock4Label.Text = source.Rows[3][0].ToString();
        stock5Label.Text = source.Rows[4][0].ToString();
        stock6Label.Text = source.Rows[5][0].ToString();
    }

Upvotes: 1

Views: 114

Answers (1)

SLaks
SLaks

Reputation: 887453

Most (all?) database systems do not have defined orders.
You will receive rows in non-determinstic storage order, not in the order you inserted them.

To receive a meaningful consistent ordering, you need to add an ORDER BY clause.

Upvotes: 2

Related Questions