我把链接数据库的语句放到aspx文件里的时候可以读出数据,我现在想把链接语句放到cs文件里,就提示:"ASPNET: 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。"index.aspx.cs文件里的内容如下:
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class index1 : System.Web.UI.Page
{
    OleDbDataReader dr;
    public void page_load(object src, EventArgs e)
    {
        String Myconnstring = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("aspnet.mdb");
        String Strsel = "Select * from new1";
        OleDbConnection myconn = new OleDbConnection(Myconnstring);
        OleDbCommand Mycomm = new OleDbCommand(Strsel, myconn);
        Mycomm.Connection.Open();
        dr = Mycomm.ExecuteReader();
    }
}index.aspx.cs文件里的内容如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %><!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>asp.net</title>
</head>
<body>
<b>DataReader演示</b>
    <table border="1">
        <tr>
            <td style="width: 50px">名字</td>
            <td style="width: 50px">名字</td>
            <td style="width: 50px">名字</td>
        </tr>
<% while(dr.Read())
   {
 %>
        <tr>
            <td><%=dr["asp"].ToString() %></td>
            <td><%=dr["aspnet"].ToString() %></td>
            <td><%=dr["php"].ToString() %></td>
        </tr>
<%  }
    dr.Close();
%>
    </table>
</body>
</html>

解决方案 »

  1.   

    后一个文件是index.aspx文件内容,请各位高手指点一下,初学不容易啊,谢谢大家了
      

  2.   

    是文件关联出错了,你一定是复制文件然后改名的。把public partial class index1 改成index或者把Inherits="index"改成index1就可以了
      

  3.   

    同意楼上的。public partial class index1 : System.Web.UI.Page 这里是index1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>   这里是index
      

  4.   

    谢谢,对,改了就不提示上面那个错误了,但是又出现另外一个错误:
    CS0122: “index.dr”不可访问,因为它受保护级别限制说是行 17错误: <% while(dr.Read())请问是不是还要加点什么啊?谢谢
      

  5.   

    <% while(dr.Read())
       {
     %>
            <tr>
                <td><%=dr["asp"].ToString() %></td>
                <td><%=dr["aspnet"].ToString() %></td>
                <td><%=dr["php"].ToString() %></td>
            </tr>
    <%  }
        dr.Close();
    %>上面的代码应该写在CS文件中更好(于你的错误无关)要解决楼主的问题,最简单的办法从工程中移除掉此aspx文件,再重新添加
      

  6.   

    <% while(dr.Read())
       {
     %>
            <tr>
                <td><%=dr["asp"].ToString() %></td>
                <td><%=dr["aspnet"].ToString() %></td>
                <td><%=dr["php"].ToString() %></td>
            </tr>
    <%  }
        dr.Close();
    %>
    这段代码放在cs文件里,那要怎么写啊,不可能就这么copy过去吧,因为我看的教程上没使用代码分离,我想学习代友分离技术,所以自己在这里分,高手们给我讲一下怎么在CS文件里控制以上要表达的数据输入来啊。万分感谢!!
      

  7.   

    把dr放到后台代码中,然后使用一个label控件绑定到后台的数据或是干脆不使用控件<%#...%>绑定以下
    我也是新手,只是提一下我的想法,请楼主考虑
      

  8.   

    把那段代码写到cs文件中可以这样写
    在aspx文件要输出这些内容的地方放一个<a id="htmldate" runat="server"></a>
    string tmp=string.Empty;
    while(dr.Read())
    {
    tmp+=" <tr>
                <td>"+dr["asp"].ToString()+"</td>
                <td>"+dr["aspnet"].ToString()"+</td>
                <td>"+dr["php"].ToString()"+</td>
            </tr>
    "
    }
    dr.close();
    htmldate.innerhtm=tmp;
    大致写了一下,自己再改一下大小写什么的.就可以了
      

  9.   

    看来楼主以前还是会点asp做web的.哈哈
      

  10.   

    以上while开始的代码放在你的 dr = Mycomm.ExecuteReader();后面就可以了
      

  11.   

    我以前就是做asp的,现在学习.net,我觉得我还在用asp的思维来写.net,对.net的思路还不了解,谢谢大家帮忙,我的问题解了,