CrazyEnglishing等高手请进,还是上次那个新闻发布问题

huguangwu 2003-10-16 05:25:12
我再发一次吧,希望能解决这个弱智问题


新闻类型表:NewsType
TypeID 主键
TypeContent 类型内容


新闻表:News

ID
TypeID
Title
Content
....

TypeID与NewsType的TypeID表一样,作为外键


然后我建了一个News_View的视图

SELECT dbo.News.ID, dbo.News.Title, dbo.News.Content, dbo.News.PictureID,
dbo.News.FileID, dbo.News.AddTime, dbo.News.FromIP, dbo.News.ReadCount,
dbo.NewsType.*
FROM dbo.News INNER JOIN
dbo.NewsType ON dbo.News.TypeID = dbo.NewsType.TypeID

然后我用自己的Bean查看该视图的信息,Bean没有错,其他的地方用得好好的,我在察看新闻页是这样写的

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="newsBean" scope="page" class="page.page"/>
<%
ResultSet newsrs=null;
String newsid=null;
newsid=request.getParameter("newsid");
String sql=null;
sql="select * from News_View where id="+newsid;

newsrs=newsBean.selQuery(sql);
if(newsrs.next())
{
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><%=newsrs.getString("Title") %></title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="476" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="476"><img src="images/news_title.gif" width="476" height="24"></td>
</tr>
<tr>
<td align="center"><font color="black" size=4><%=newsrs.getString("Title") %></font></td>
</tr>
<tr>
<td align="center">新闻类型:<%=newsrs.getString("TypeContent")%>加入时间:<%=newsrs.getDate("AddTime")%> 阅读次数:<%=newsrs.getInt("ReadCount")+1%></td>
</tr>
<tr>
<td><br>  <%=newsrs.getString("Content")%></td>
</tr>
<tr>
<td><img src="images/news_bottom.gif" width="473" height="35" border="0" usemap="#Map"></td>
</tr>
</table>

<map name="Map">
<area shape="rect" coords="394,18,450,32" href="javascript:window.close();">
</map>
</body>
</html>
<%

}
else
{
out.println("数据库中无此新闻");
}
newsrs.close();
%>


可是一加上这个新闻类型,这一项就出错,请大虾告诉我怎么回事
...全文
90 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
huguangwu 2003-10-21
  • 打赏
  • 举报
回复
哎,还是没解决,算了,结帐吧
huguangwu 2003-10-18
  • 打赏
  • 举报
回复
CrazyEnglishing有QQ号吗?
aku0708 2003-10-17
  • 打赏
  • 举报
回复
你把这句改成if(newsrs.next())
while(newsrs.next())
试试
huguangwu 2003-10-17
  • 打赏
  • 举报
回复
root cause

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6106)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6263)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataStringDate(JdbcOdbc.java:3434)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataStringDate(JdbcOdbcResultSet.java:5540)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDate(JdbcOdbcResultSet.java:934)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDate(JdbcOdbcResultSet.java:951)
at org.apache.jsp.news_jsp._jspService(news_jsp.java:104)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:315)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.util.SecurityUtil$1.run(SecurityUtil.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:499)
at org.apache.catalina.util.SecurityUtil.execute(SecurityUtil.java:210)
at org.apache.catalina.util.SecurityUtil.doAsPrivilege(SecurityUtil.java:147)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:99)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:177)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:271)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at com.sun.enterprise.webservice.EjbWebServiceValve.invoke(EjbWebServiceValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:383)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:536)

huguangwu 2003-10-17
  • 打赏
  • 举报
回复
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:564)
at org.apache.jsp.news_jsp._jspService(news_jsp.java:139)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:315)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.util.SecurityUtil$1.run(SecurityUtil.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:499)
at org.apache.catalina.util.SecurityUtil.execute(SecurityUtil.java:210)
at org.apache.catalina.util.SecurityUtil.doAsPrivilege(SecurityUtil.java:147)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:99)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:177)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:271)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at com.sun.enterprise.webservice.EjbWebServiceValve.invoke(EjbWebServiceValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:383)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:536)


xqi8 2003-10-17
  • 打赏
  • 举报
回复
出错信息帖出来吧!
huguangwu 2003-10-17
  • 打赏
  • 举报
回复
出的就是无效的描述符,然后就是一大堆编译错误。
lynx1111 2003-10-17
  • 打赏
  • 举报
回复
这是我测试好的代码:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
//pubs为你的数据库的
String user="sa";
String password="aaa";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet newsrs=null;
int newsid;
newsid=1; //request.getParameter("newsid");
String sql=null;
sql="select * from dbo.News_View where id="+newsid;
newsrs=stmt.executeQuery(sql);
if(newsrs.next())
{
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><%=newsrs.getString("Title") %></title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="476" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="476"><img src="images/news_title.gif" width="476" height="24"></td>
</tr>
<tr>
<td align="center"><font color="black" size=4><%=newsrs.getString("Title") %></font></td>
</tr>
<tr>
<td align="center">新闻类型:<%=newsrs.getString("TypeContent")%>
加入时间:<%=newsrs.getDate("AddTime")%> 
阅读次数:<%=newsrs.getInt("ReadCount")+1%></td>
</tr>
<tr>
<td><br>  <%=newsrs.getString("Content")%></td>
</tr>
<tr>
<td><img src="images/news_bottom.gif" width="473" height="35" border="0" usemap="#Map"></td>
</tr>
</table>
<%
}

else
{
out.println("数据库中无此新闻");
}
newsrs.close();
%>
<map name="Map">
<area shape="rect" coords="394,18,450,32" href="javascript:window.close();">
</map>
</body>
</html>
-------------------------------------------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[News_View]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view [dbo].[News_View]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE VIEW dbo.News_View
AS
SELECT dbo.News.ID AS ID, dbo.News.Title AS Title, dbo.News.Content AS Content,
dbo.News.PictureID AS PictureID, dbo.News.FileID AS FileID,
dbo.News.AddTime AS AddTime, dbo.News.FromIP AS FromIP,
dbo.News.ReadCount AS ReadCount, dbo.NewsType.TypeID AS TypeID,
dbo.NewsType.TypeContent AS TypeContent
FROM dbo.News INNER JOIN
dbo.NewsType ON dbo.News.TypeID = dbo.NewsType.TypeID

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_News_NewsType]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[News] DROP CONSTRAINT FK_News_NewsType
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[News]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[News]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[NewsType]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[NewsType]
GO

CREATE TABLE [dbo].[News] (
[ID] [bigint] IDENTITY (1, 1) NOT NULL ,
[TypeID] [int] NOT NULL ,
[Title] [varchar] (8000) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[PictureID] [int] NULL ,
[FileID] [int] NULL ,
[AddTime] [datetime] NOT NULL ,
[FromIP] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ReadCount] [bigint] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[NewsType] (
[TypeID] [int] IDENTITY (1, 1) NOT NULL ,
[TypeContent] [varchar] (500) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[News] WITH NOCHECK ADD
CONSTRAINT [PK_News] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[NewsType] WITH NOCHECK ADD
CONSTRAINT [PK_NewsType] PRIMARY KEY CLUSTERED
(
[TypeID]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[News] ADD
CONSTRAINT [FK_News_NewsType] FOREIGN KEY
(
[TypeID]
) REFERENCES [dbo].[NewsType] (
[TypeID]
)
GO
------------------------------------------------
几点建议:
1。你的程序String newsid=null;
newsid=request.getParameter("newsid");
sql="select * from News_View where id="+newsid;
在这里需要用inter.praseint(记不清楚了)转换一下
2。如果确保视图中newsid职唯一可以用if(newsrs.next())
否则要用while(newsrs.next())并且这一段要放到循环外面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><%=newsrs.getString("Title") %></title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="476" border="0" cellspacing="0" cellpadding="0">
(尾部一样)
huguangwu 2003-10-17
  • 打赏
  • 举报
回复
帮帮我吧
huguangwu 2003-10-17
  • 打赏
  • 举报
回复
还是一样
9731boy 2003-10-16
  • 打赏
  • 举报
回复
出什么错啊?
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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