try{ 
SqlConnection conn=new SqlConnection("server=localhost;database=insure;uid=sa;pwd=");
string sql="select productname,kindid,companyid,age,paymode,paydeadline,ensdeadline,characteristic,duty from product";
conn.Open();
SqlCommand cmd=new SqlCommand(sql,conn);
SqlDataReader rs=cmd.ExecuteReader();
if (rs.Read()) { 
//读取相关信息
lblpname.Text = rs.GetString(0);
lblage.Text=rs.GetString(3);
lblpaymode.Text=rs.GetString(4);
this.lblpaydate.Text=rs.GetString(5);
this.lblensuredate.Text=rs.GetString(6);
this.lblcharicter.Text=rs.GetString(7);
this.lblresponsibility.Text=rs.GetString(8);
int cid=rs.GetInt32(1);
string sqlc="select conanyname from company where cid='"+cid+"'"; SqlCommand cmdc=new SqlCommand(sqlc,conn);
SqlDataReader rsc=cmdc.ExecuteReader();
if(rsc.Read()){
this.lblcompany.Text=rsc.GetString(0);
}
int kid=rs.GetInt32(2);
string sqlk="select productname from insurekinds where id='"+kid+"'"; SqlCommand cmdk=new SqlCommand(sqlk,conn);
SqlDataReader rsk=cmdk.ExecuteReader();
if(rsk.Read()){
this.lblkindname.Text=rsk.GetString(0);
}
rsc.Close();
rsk.Close();
rs.Close();
conn.Close();
}
}catch(Exception ex){
throw ex;
}
finally{
 
}
这段代码是为页面中的label读取数据的,可总不能显示数据,也不报错,大虾们看下,是不是数据没从数据库中得到,怎么调试,希望指点一下

解决方案 »

  1.   

    1、在查询分析器执行select productname,kindid,companyid,age,paymode,paydeadline,ensdeadline,characteristic,duty from product
    2、设置断点在
    int cid=rs.GetInt32(1);位置
    察看lable是否得到了值
    推荐第一种方法
      

  2.   

    你看看这个
    使用 SqlDataReader 读取数据示例
    <% @Import namespace="System.Data" %>
    <% @Import Namespace="System.Data.SqlClient" %><html>
    <HEAD>
      <title>使用 SqlDataReader 读取数据示例</title>
        <script language="C#" runat="server">
        void Page_Load(object sender, System.EventArgs e)
       {
        string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"];
        string Sql = "SELECT LastName, FirstName FROM Employees";
        sqlconnection thisConnection = new SqlConnection(ConnectionString);
        SqlCommand thisCommand = new SqlCommand(Sql, thisConnection);
        thisCommand.CommandType = CommandType.Text;
        try
        {
         // 打开数据库连接
         thisCommand.Connection.Open();
         // 执行SQL语句,并返回DataReader对象
         SqlDataReader dr = thisCommand.ExecuteReader();
         // 以粗体显示标题
         myLabel.Text = "<b>LastName FirstName</b><br>";
         // 循环读取结果集
         while(dr.Read())
         {
          // 读取两个列值并输出到Label中
          myLabel.Text += dr["LastName"] + " " + dr["FirstName"] + "<br>";
         }
         // 关闭DataReader
         dr.Close();
        }
        catch(SqlException ex)
        {
         // 异常处理
         Response.Write(ex.ToString());
        }
        finally
        {
         // 关闭数据库连接
         thisCommand.Connection.Close();
        }
       }
      
      </script>
      
    </HEAD><body>
      <form id="Form1" method="post" runat="server">
       <h3>使用 SqlDataReader 读取数据示例</h3>
        显示内容:<br>
        <asp:Label id="myLabel" runat="server"></asp:Label>
      </form>
    </body>
    </HTML>
      

  3.   

    第一种执行后没有错误,可以查到结果-----------------
    一个数据库连接只能开一个DataReader好不好
    SqlCommand cmdc=new SqlCommand(sqlc,conn);
    SqlDataReader rsc=cmdc.ExecuteReader();
    前面加个新的连接
    SqlConnection conn2=new SqlConnection("server=localhost;database=insure;uid=sa;pwd=");
    conn2.Open();
    SqlCommand cmdc=new SqlCommand(sqlc,conn2);
    SqlDataReader rsc=cmdc.ExecuteReader();