我在main函数调用如下方法时报告错误:=================================================Java code========================================
public List<Object> checkAll(int line)
{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
List<Object> lst=new ArrayList<Object>();
Dlc2 dlc2=null;
conn=getConnection();
try
{
pstmt=conn.prepareStatement("[color=#003300]select top 10 * from TBL_MESSAGE where id not in(select top ? id from TBL_MESSAGE order by id) order by id");
pstmt.setInt(1, line);
rs=pstmt.executeQuery();
while(rs.next())
{
int id=rs.getInt(1);
String message=rs.getString(2);
String author=rs.getString(3);
Date postTime=rs.getDate(4);
dlc2=new Dlc2(id,message,author,postTime);
lst.add(dlc2);
}
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
closeAll(conn,pstmt,rs);
}
return lst;
}[/color]
=================================================控制台错误========================================
com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unknown Source)
at com.dlc2.dao.impl.Dlc2DaoImpl.checkAll(Dlc2DaoImpl.java:86)
at com.dlc2.biz.Dlc2Biz.checkAll(Dlc2Biz.java:21)
at com.dlc2.test.Dlc2Test.main(Dlc2Test.java:17)
===================================================END=============================================
错误中的Dlc2DaoImpl是Dlc2Dao的接口实现类,
错误中的Dlc2Biz是表示层的类
错误中的Dlc2Test是测试包中的类,方法就是在这个类中调用的。
public List<Object> checkAll(int line)
{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
List<Object> lst=new ArrayList<Object>();
Dlc2 dlc2=null;
conn=getConnection();
try
{
pstmt=conn.prepareStatement("[color=#003300]select top 10 * from TBL_MESSAGE where id not in(select top ? id from TBL_MESSAGE order by id) order by id");
pstmt.setInt(1, line);
rs=pstmt.executeQuery();
while(rs.next())
{
int id=rs.getInt(1);
String message=rs.getString(2);
String author=rs.getString(3);
Date postTime=rs.getDate(4);
dlc2=new Dlc2(id,message,author,postTime);
lst.add(dlc2);
}
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
closeAll(conn,pstmt,rs);
}
return lst;
}[/color]
=================================================控制台错误========================================
com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unknown Source)
at com.dlc2.dao.impl.Dlc2DaoImpl.checkAll(Dlc2DaoImpl.java:86)
at com.dlc2.biz.Dlc2Biz.checkAll(Dlc2Biz.java:21)
at com.dlc2.test.Dlc2Test.main(Dlc2Test.java:17)
===================================================END=============================================
错误中的Dlc2DaoImpl是Dlc2Dao的接口实现类,
错误中的Dlc2Biz是表示层的类
错误中的Dlc2Test是测试包中的类,方法就是在这个类中调用的。
select top 10 * from TBL_MESSAGE where id not in(select top ? id from TBL_MESSAGE order by id)order by id
问号部分是我传入的数字,比如传入0就是查前十条,传入10就查第十条以后的,反正是每次查十条,在MSSQL中可以用,但写到Java中不知道问什么就报这个错!想请各位老人帮我看看3Q!