注册 登录
编程论坛 ASP.NET技术论坛

我的这个怎么没显示数据?

xiaohonghui0 发布于 2007-05-28 14:10, 783 次点击

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>

<!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>
<%@Import Namespace="System.Data.OleDb"%>
<script language="c#" runat="server" >
void page_load()
{
string strconn = "Provider = Microsoft.Jet.OleDb.4.0; Data Source=chinacoat.mdb";
OleDbConnection sampleconn=new OleDbConnection(strconn);
try{
sampleconn.Open();
OleDbCommand cmd = new OleDbCommand("select * from detail where id1=5", sampleconn);
OleDbDataReader rdr = cmd.ExecuteReader();
Label3.Text = rdr["comapanychi"].ToString();

}finally{

}

/*conn_str.Text="pppppp";*/

}
</script>

<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label3" runat="server" Width="298px"></asp:Label>
</form>
</body>
</html>

我的标签里怎么没显示数据,大家帮我看看,谢谢!

19 回复
#2
GrimFish2007-05-28 14:34

这里改一下
OleDbDataReader rdr = cmd.ExecuteReader();
if(rdr.Read())
{
Label3.Text = rdr["comapanychi"].ToString();
}

或者用循环来迭代

while(rdr.Read())
{
Label3.Text = rdr["comapanychi"].ToString();
}

#3
GrimFish2007-05-28 14:37
try
{

}
catch (Exception e)
{
Response.Write(e.Message); //输出异常
}
finally
{
rdr.Close();//记得要关闭DR
}
#4
xiaohonghui02007-05-28 14:51
我是新手,问题有点简单,很感谢你的回复.

#5
tel19822007-05-29 08:08
记住,要先读出来,才能进行赋值。
#6
xiaohonghui02007-05-29 10:06

有点小突破,但是又有这个问题,代码是:
public partial class detail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.QueryString["id"];
string strconn = "Provider = Microsoft.Jet.OleDb.4.0; Data Source=F:\\asp.net\\chinacoat.mdb";
OleDbConnection sampleconn=new OleDbConnection(strconn);
try
{
sampleconn.Open();
string sql = "select * from detail where id1="+Request.QueryString["id"];
OleDbCommand rs = new OleDbCommand(sql,sampleconn);
OleDbDataReader rdr = rs.ExecuteReader();
if (rdr.Read())
{
Label2.Text = rdr["companychi"].ToString();
}
}
finally
{
if (rdr.Read != null)
{
rdr.close();
}
if (strconn.Read != null)
{
strconn.close();
}
}
}
}
如果我将finally括号里面的内容全部删除,能正常显示,但是如果放这个语句,运行时就提示:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0103: 当前上下文中不存在名称“rdr”

源错误:

行 31: finally
行 32: {
行 33: if (rdr.Read != null)
行 34: {
行 35: rdr.close();

这是什么问题,大家帮我看看,谢谢!

#7
wyg48592007-05-29 10:26
以后记得遵循页面和代码分离的原则,结构清晰,便于查错!
#8
faith08312007-05-29 10:27
修改如下~
public partial class detail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.QueryString["id"];
string strconn = "Provider = Microsoft.Jet.OleDb.4.0; Data Source=F:\\asp.net\\chinacoat.mdb";
OleDbConnection sampleconn=new OleDbConnection(strconn);
try
{
sampleconn.Open();
string sql = "select * from detail where id1="+Request.QueryString["id"];
OleDbCommand rs = new OleDbCommand(sql,sampleconn);
OleDbDataReader rdr = rs.ExecuteReader();
if (rdr.Read())
{
Label2.Text = rdr["companychi"].ToString();
}

}
finally
{
rdr.close();
sampleconn.close();
}
}
}
#9
xiaohonghui02007-05-29 10:36

你是只修改了finally语句 吗,一样的,还是那个错误
真奇怪!

#10
faith08312007-05-29 10:40
不是吧。。呃~~

public partial class detail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.QueryString["id"];
string strconn = "Provider = Microsoft.Jet.OleDb.4.0; Data Source=F:\\asp.net\\chinacoat.mdb";
OleDbConnection sampleconn=new OleDbConnection(strconn);
sampleconn.Open();
string sql = "select * from detail where id1="+ Label1.Text;
OleDbCommand rs = new OleDbCommand(sql,sampleconn);
OleDbDataReader rdr = rs.ExecuteReader();
while (rdr.Read())
{
Label2.Text = rdr["companychi"].ToString();
}
rdr.close();
sampleconn.close();

}
}
#11
xiaohonghui02007-05-29 10:44

sorry,不知为何又有这个错误:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0117: “System.Data.OleDb.OleDbDataReader”并不包含“close”的定义

源错误:

行 27: }
行 28:
行 29: rdr.close();
行 30: sampleconn.close();
行 31:

#12
GrimFish2007-05-29 10:46
Label1.Text = Request.QueryString["id"];
string strconn = "Provider = Microsoft.Jet.OleDb.4.0; Data Source=F:\\asp.net\\chinacoat.mdb";
OleDbConnection sampleconn=new OleDbConnection(strconn);
sampleconn.Open();
string sql = "select * from detail where id1="+Request.QueryString["id"];
OleDbCommand rs = new OleDbCommand(sql,sampleconn);
OleDbDataReader rdr = rs.ExecuteReader();
try
{
if (rdr.Read())
{
Label2.Text = rdr["companychi"].ToString();
}
}
finally
{
rdr.close();
sampleconn.Close();//finally里的语句,不管程序是否抛出异常,都将执行的。所以不需要判断是否是Read(),注意Read(),后面有圆括号。
}

[此贴子已经被作者于2007-5-29 10:53:06编辑过]

#13
guming2007-05-29 10:48
不要用try...finally试一下

sampleconn.Open();
string sql = "select * from detail where id1="+Request.QueryString["id"];
OleDbCommand rs = new OleDbCommand(sql,sampleconn);
OleDbDataReader rdr = rs.ExecuteReader();
if (rdr.Read())
{
rdr.close();
Label2.Text = rdr["companychi"].ToString();
}
sampleconn.close();


#14
GrimFish2007-05-29 10:48
strconn.close();这句改为

---------------------
sampleconn.Close();

[此贴子已经被作者于2007-5-29 10:49:05编辑过]

#15
GrimFish2007-05-29 10:48
sampleconn.Close();
#16
xiaohonghui02007-05-29 10:52

楼上的GrimFish,我按你的修改了,但还是有错误:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0117: “System.Data.OleDb.OleDbDataReader”并不包含“close”的定义

源错误:

行 31: finally
行 32: {
行 33: rdr.close();
行 34: sampleconn.close();
行 35: }

这是不是还需要调用接口函数,我用到的有:
using System;
using System.Data;
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;
using System.Data.OleDb;

#17
xiaohonghui02007-05-29 10:54

不用try...finally试了一下,错误信息和上面的差不多:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0117: “System.Data.OleDb.OleDbConnection”并不包含“close”的定义

源错误:

行 28:
行 29:
行 30: sampleconn.close();
行 31:
行 32: }

#18
GrimFish2007-05-29 10:55
大哥,C字大写,Close();
#19
xiaohonghui02007-05-29 10:59
楼上的.
看来以后得小心,都是asp里面养成习惯.

谢谢大家的回复!
#20
bygg2007-05-29 12:39
有try没catch ??什么意思?
1