<%@ Page Language="C#" AutoEventWireup="true" CodeFile="list.aspx.cs" Inherits="public_list" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection link;
        string l = @"DATA SOURCE=(local);UID=DBO500;PWD=Pull#_And_650406$_98;DATABASE=News_50018";
        link = new SqlConnection(l);
        link.Open();
        string s = "select iType,cTitle from tblNEWS_TYPE";
        SqlCommand sc = new SqlCommand(s,link);
        SqlDataReader sdr;
        sdr = sc.ExecuteReader();
    }
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body style="background-color:#999999;margin-top:0px;margin-bottom:0px">
<center>
    <form id="form1" runat="server">
    <div>
    <table style="background-color:#EEF3F7;width:800px;height:900px;" cellpadding="0px" cellspacing="0px">
    <tr>
    <td>
        <%while (sdr.Read())
          {
              Response.Write("<a href='list.asp?type=" + rs("type") + "' style='color:blue'>" + rs("title") + "</a> | ");
          }
          sdr.Close();
              %>
    </td>
    </tr>
    </table>
    </div>
    </form>
</center>
</body>
</html>
/***************************************************************
错误提示:当前上下文中不存在名称“sdr”(指while (sdr.Read())本句中的sdr)
sdr是定义了的SqlDataReader对象,怎么会不存在呢?????
不知道为什么,望各位大虾指点!!!!!!!!!!!!

解决方案 »

  1.   

    sdr定义在Page_Load中,出了它的作用域怎么可能访问得到?把它定义在Page_Load外面,作为你页面类的一个字段
    p.s:为什么还要用asp的写法
      

  2.   

    在后台代码(即.cs文件)中写protected SqlDataReader  sdr = new SqlDataReader();protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection link;
            string l = @"DATA SOURCE=(local);UID=DBO500;PWD=Pull#_And_650406$_98;DATABASE=News_50018";
            link = new SqlConnection(l);
            link.Open();
            string s = "select iType,cTitle from tblNEWS_TYPE";
            SqlCommand sc = new SqlCommand(s,link);
            sdr = sc.ExecuteReader();
        } 这样你while循环那一段可以不用修改了