2011-06-25 126 views
1

當限制爲0,1時,以下代碼可以正常工作,但將其限制爲0,30時我無法檢索記錄我確定我的數據庫有足夠的記錄數。 但是我懷疑dr [3] .ToString();如何檢索所有這些。ODBC選擇所有命令

string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=malla_softmail2;" + "UID=xxx;" + "PASSWORD=xxx;" + "OPTION=3"; 
     OdbcConnection MyConnection = new OdbcConnection(MyConString); 
     MyConnection.Open(); 
     OdbcCommand cmd = new OdbcCommand("Select * from awm_test where user=? limit= 0, 1", MyConnection); 
     cmd.Parameters.Add("@email", OdbcType.VarChar, 255).Value = "hello"; 
     OdbcDataReader dr = cmd.ExecuteReader(); 
     if (dr.HasRows == false) 
     { 
      // throw new Exception(); 
     } 
     if (dr.Read()) 
     { 
      string a = dr[0].ToString(); 
      string b = dr[1].ToString(); 
      string c = dr[2].ToString(); 
      //string d = dr[3].ToString(); 
      //string f = dr[4].ToString(); 
      //string g = dr[5].ToString(); 

      Response.Write(a); 
      Response.Write(b); 
      Response.Write(c); 
      //Response.Write(d); 
      //Response.Write(f); 
      //Response.Write(g); 
+0

我的要求是設置一個簡單的「用戶搜索」頁面來瀏覽數據庫值。 – lock

+0

你確定你的桌子上有多次「你好」嗎? – Binil

+0

yess我相信...! – lock

回答

2

您只處理查詢返回的第一條記錄。嘗試:

while (dr.Read()) { 
    string firstField = dr[0].ToString(); 
    string secondField = dr[1].ToString(); 
    string thirdField = dr[2].ToString(); 

    // ... 
} 
+0

這可以只檢索第一條記錄。我在每條記錄中有3個字段 – lock

+0

@Karthik,它將處理自'Read'()'在'while'循環中調用以來的所有記錄(當然,假設您增加或刪除了'LIMIT'子句)。 –

+0

非常感謝Frederic ...!這工作! – lock

0

你只需要while(dr.Read()) {...do stuff for each row...}閱讀在一個循環中的行 - 每個dr.Read()移動到下一行。