ODBC选择所有命令

| 当限制为0,1时,以下代码可以正常工作;当限制为0,30时,我无法检索记录。我确定数据库中有足够的记录数。 但是我怀疑dr [3] .ToString();之后的语法。如何检索所有这些。
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);
    
已邀请:
        您只处理查询返回的第一条记录。尝试:
while (dr.Read()) {
    string firstField = dr[0].ToString();
    string secondField = dr[1].ToString();
    string thirdField = dr[2].ToString();

    // ...
}
    
        您只需要用
while(dr.Read()) {...do stuff for each row...}
循环读取行-每
dr.Read()
移至下一行。     

要回复问题请先登录注册