2012-02-05 85 views
1

我有以下的方法來創建和以前stock1Label到stock3Label能夠輸出從數據庫中正確的價值觀但是之後我加入了更多行我ProductsTable,source.Rows [0] [0 ],[1] [0]等似乎是從第8行開始取代第1行的值,任何人都知道爲什麼會發生這種情況?OLEDB數據不正確的行讀

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

回答

2

大多數(所有?)數據庫系統沒有定義的訂單。
您將以非確定性存儲順序接收行,而不是按照您插入它們的順序。

要獲得有意義的一致排序,你需要添加一個ORDER BY條款。

+0

感謝您的解釋,學到了一些東西今天新的:) – aurelio 2012-02-05 05:50:06