<%@page language="C#"%>
<%@import namespace="System.Data"%>
<%@import namespace="System.Data.SqlClient"%>
<html>
<script language="C#" runat="server">
void page_load(object serder, EventArgs e)
{
SqlConnection sqlconnection;
SqlCommand sqlcommand=new SqlCommand();
SqlDataReader sqldatareader;
string sqlconnstr="Data Source=localhost;uid=sa;pwd=;Initial Catalog=chapter";
sqlconnection=new SqlConnection(sqlconnstr);
sqlconnection.Open();
sqlcommand.Connection=sqlconnection;
sqlcommand.CommandText="select * from student";
sqldatareader=sqlcommand.ExecuteReader();
do 
{
sqldatareader.Read();
labcontent.Text+=sqldatareader.GetString(0)+" ";
labcontent.Text+=sqldatareader.GetString(1)+" ";
labcontent.Text+=sqldatareader.GetInt32(2)+" ";
labcontent.Text+=sqldatareader.GetString(3)+"<br>";
}
while(sqldatareader.NextResult());
sqlcommand=null;
sqlconnection.Close();
sqlconnection=null;
labcontent.Text+="查找成功";
}
</script>
<body>
<form runat=server>
<asp:label id=labcontent runat=server/><br>
</form>
</body>
</html>
为什么,我执行后,只能读取一行记录,不能读出整个表,哪错呢?

解决方案 »

  1.   

    do 

    sqldatareader.Read(); 
    labcontent.Text+=sqldatareader.GetString(0)+" "; 
    labcontent.Text+=sqldatareader.GetString(1)+" "; 
    labcontent.Text+=sqldatareader.GetInt32(2)+" "; 
    labcontent.Text+=sqldatareader.GetString(3)+" <br>"; 

    while(sqldatareader.NextResult()); 
    sqlcommand=null; 
    sqlconnection.Close(); 
    sqlconnection=null; 
    labcontent.Text+="查找成功"; 
    }
    ================
    while(sqldatareader.Read())
    {labcontent.Text+=sqldatareader.GetString(0)+" "; 
    labcontent.Text+=sqldatareader.GetString(1)+" "; 
    labcontent.Text+=sqldatareader.GetInt32(2)+" "; 
    labcontent.Text+=sqldatareader.GetString(3)+" <br>"; }
      

  2.   

    sqldatareader.NextResult指的是下一个结果集,不是下一条记录,所以你永远只能取一条记录。
      

  3.   

     while (reader.Read())
                {
                    //..
                }就可以了
      

  4.   


    if(sqldatareader.HasRead)
    {
      while(sqldatareade.Read())
      {
        string a = sqldatareader.GetString(0);
        string b = sqldatareader.GetString(1);
        //略
      }
    }