为什么我的OleDataReader不能在Html代码中使用?

qiaov 2004-08-27 10:40:18
提示:编译器错误信息: CS0246: 找不到类型或命名空间名称“dr”(是否缺少 using 指令或程序集引用?)
我看不出有什么错误?因为我是按书上的示例改写的。

请各位高手帮忙指点一下,高分相谢。

=============Source Code===============
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace = "System.Data" %>
<%@ Import Namespace = "System.Data.OleDb" %>
<%@ Import Namespace = "System.Text" %>
<SCRIPT LANGUAGE="C#">
//Open Connection
string strConn = "Provider=Micorsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".\\AMI.mdb");
OleDbConnection myConn;
myConn = new OleDbConnection(strConn);
myConn.Open();
OleDbCommand myComm;
OleDbDataReader dr; //在这里声明dr,不能在Html代码中使用吗?谢谢指点。

public void Page_Load(Object Sender, EventArgs e)
{
lblMsg.Text = "";
lblMsg.ForeColor = "Blue";
if(!Page.IsPostBack || Request.Form["txtSearch"].ToString().Trim() == "")
{
Response.Write{"Get");
Response.End();
string strSQL = "Select Top 20 * From FAQ Where Replied=1 Order by id";
myComm = new OleDbCommand(strSQL, myConn);
dr = myComm.ExecuteReader();
lblMsg.Text = "当前显示的是数据库中最近更新的前20个FAQ,如果没有你需要的FAQ,请使用查询功能。";
}
else
SearchIt(Request.Form["txtSearch"].ToString().Trim(), Request.Form["ddlLoc"].ToString().Trim());
}
public void SearchIt(string uKeywords, string uSearchType)
{
char[] de = {' '};
string[] xKeys = uKeywords.Split(de);
StringBuilder strSQL = new StringBuilder("Select * From FAQ Where (");
switch(uSearchType)
{
case "Title":
for(int i=0; i <= xKeys.Length - 1; i++)
{
strSQL.Append(" Title = '%" + xKeys[i] + "%'");
if(i < xKeys.Length - 1) strSQL.Append(" OR");
}
break;
case "Content":
for(int i=0; i <= xKeys.Length - 1; i++)
{
strSQL.Append(" Content = '%" + xKeys[i] + "%'");
if(i < xKeys.Length - 1) strSQL.Append(" OR");
}
break;
}
strSQL.Append(" ) And Replied=1 Order by id Desc");
myComm = new OleDbCommand(strSQL, myConn);
dr = myComm.ExecuteReader();
lblMsg.Text = "在数据库中搜索到" + dr.FieldCount + "条相关内容。";
}

</SCRIPT>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>FAQ</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../../SiteStyle.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {
color: #006600;
font-size: 55px;
font-weight: bold;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>
<body>
<table width="750" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td colspan="2"><div align="center"><span class="style1">FAQ </span></div></td>
</tr>
<tr>
<td width="636" align="center">
<form name="form1" method="post" action="" runat="server">
查询:
<asp:TextBox ID="txtSearch" ToolTip="请输入您要查询的内容" TextMode="SingleLine" runat="server" />

<asp:DropDownList ID="ddlLoc" runat="server">
<asp:ListItem Text="标题" Value="Title"></asp:ListItem>
<asp:ListItem Text="内容" Value="Content"></asp:ListItem>
</asp:DropDownList>

<asp:Button ID="btnSubmit" Text="搜索" runat="server" class="qwButton" />
</form> </td>
<td width="106" align="right"><input name="Button3" type="button" class="qwButton" id="Button3" onClick="MM_goToURL('parent','FAQQuestion.aspx');return document.MM_returnValue" value="提问">
<input name="Button4" type="button" class="qwButton" id="Button4" onClick="MM_goToURL('parent','AddFAQ.aspx');return document.MM_returnValue" value="添加"></td>
</tr>
</table>
<asp:Label id="lblMsg" runat="server" />
<%
while(dr.Read()) //<=提示出错的地方 CS0246: 找不到类型或命名空间名称“dr”(是否缺少 using 指令或程序集引用?)
{
%>
<table width="750" border="0" align="center" cellpadding="3" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#E1F0FD">
<tr>
<td width="30" align="center"><%=dr["id"].ToString()%></td>
<td width="710"><%=dr["Title"].ToString()%></td>
</tr>
<tr>
<td> </td>
<%
if(dr["faqType"].ToString() == "Dynamic")
{
%>
<td><A HREF="<%=dr["Content"].ToString()%>"><%=dr["Content"].ToString()%></A></td>
<%
}
else
{
%>
<td><%=dr["Content"].ToString()%></td>
<%
}
%>
</tr>
<%
if(dr["LinkImage"].ToString() != "")
{
char[] de = {';'};
string[] images = dr["LinkImage"].ToString().Split(de);
for(i=0 ; i<images.Length-1; i++)
{
%>
<tr>
<td width="30" align="center"> </td>
<td width="710"><INPUT TYPE="image" SRC="<%=images[i]%>"></td>
</tr>
<%
}
}
%>
<tr align="center">
<td colspan="2"><div align="right">
<input name="Button2" type="button" class="qwButton" id="Button2" onClick="MM_goToURL('parent','ModifyFAQ.aspx');return document.MM_returnValue" value="修改">
<input name="Button1" type="button" class="qwButton" id="Button1" onClick="MM_goToURL('parent','DeleteFAQ.aspx');return document.MM_returnValue" value="删除">
</div></td>
</tr>
</table>
<%
}
dr.Close();
%>
<br>
</body>
</html>
================================================================================
再次感谢。
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacky_jihao 2004-08-27
  • 打赏
  • 举报
回复
代码太乱了
应该把html 和 代码分离
qiaov 2004-08-27
  • 打赏
  • 举报
回复
请告知详细的错误,我还是看不出来,我和书上写的一样啊。

谢谢
whxleem 2004-08-27
  • 打赏
  • 举报
回复
string strConn = "Provider=Micorsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".\\AMI.mdb");
错误在这里 你好好看看吧
qiaov 2004-08-27
  • 打赏
  • 举报
回复
编译器错误信息: CS1519: 类、结构或接口成员声明中的标记“(”无效

源错误:

行 7: string strConn = "Provider=Micorsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".\\AMI.mdb");
行 8: OleDbConnection myConn = new OleDbConnection(strConn);
行 9: myConn.Open();////////////////
行 10: OleDbCommand myComm;
行 11: OleDbDataReader dr;

Sorry,应该是这样的。
qiaov 2004-08-27
  • 打赏
  • 举报
回复
CSDN_0(风鸣):
是我的疏忽,只能归咎于我是新手了!:)
谢谢。
行 7: string strConn = "Provider=Micorsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".\\AMI.mdb");
行 8: OleDbConnection bmyConn = new OleDbConnection(strConn);
行 9: myConn.Open(); //CS1519: 类、结构或接口成员声明中的标记“(”无效
行 10: OleDbCommand myComm;
行 11: OleDbDataReader dr;

提示错误成这样了?是否不在函数块中就不能使用Open方法?谢谢。
qiaov 2004-08-27
  • 打赏
  • 举报
回复
我也想分离的,可我刚学aspx,在这个页面功能的时候,我还不清楚使用哪些控件可以完成代码分离。我看了DataList、DataRepeater,可我感觉那个东西是按模板直接生成数据库中的数据,我的代码中有部分是按是否录入image路径,判断输出的内容应该是文字还是链接的,请问,我该如何利用Data控件实现这样的功能呢?
非常感谢!!
CSDN_0 2004-08-27
  • 打赏
  • 举报
回复
To:qiaov (风从北吹)

试试加一句:runat=server

<SCRIPT LANGUAGE="C#" runat=server>
......
</script>
孟子E章 2004-08-27
  • 打赏
  • 举报
回复
btw:

asp.net的一个好处就是代码和html分离,好像你……
孟子E章 2004-08-27
  • 打赏
  • 举报
回复
最好用Literal控件占位,把内容放到Literal1.Text = "输出内容吧"
wen98091 2004-08-27
  • 打赏
  • 举报
回复
可以试试:
OleDbDataReader dr=myComm.ExecuteReader();

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧