’##################老出错!只是链接数据库不一样########################################
Dim myconn As sqlconnection
myConn=new sqlconnection("uid=sa;pwd=;initial catalog=ResDate;data source=WINSHION;Connect Timeout=900")myConn.open()
Dim dadProducts As SQLDataAdapter
Dim dstProducts As DataSet
Dim strSelect As StringstrSelect = "SELECT * FROM (SELECT TOP 20 * FROM (SELECT TOP 60 news.title,news.id,news.createdate,SmallClass.SmallClassName from news INNER JOIN SmallClass ON news.sortid = SmallClass.SmallClassID where news.sortid=283 order by news.id desc) order by news.id asc) order by news.id desc"dadProducts = New SQLDataAdapter( strSelect, myconn )
dstProducts = New DataSet()
dadProducts.Fill( dstProducts,"news" )
dadProducts.Fill( dstProducts,"SmallClass" )
dgrdProducts.DataSource = dstProducts
dgrdProducts.DataBind()
’##################老出错!只是链接数据库不一样########################################老是提示SQL问题出错!但我拷贝语句在SQL SERVER里运行正常
再样的SQL语句连接到ACCSEE数据库里可以正常读取!
’##################可以正常运行#########################################################
Dim myconn As OleDbConnectionDim dbconn AS String
dim dbname as string
dbconn=system.configuration.configurationsettings.appsettings("dbaselj1" )
dbname=server.mappath(dbconn)
myConn=New OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="&dbname )
myConn.open()Dim dadProducts As OleDbDataAdapter
Dim dstProducts As DataSet
Dim strSelect As String
strSelect = "SELECT * FROM (SELECT TOP "&cint(pagesizes)&" * FROM (SELECT TOP "&cint(pmax)&" news.title,news.id,news.createdate,SmallClass.SmallClassName from news INNER JOIN SmallClass ON news.sortid = SmallClass.SmallClassID where news.sortid="&request("sid")&" order by news.id desc) order by news.id asc) order by news.id desc"
dadProducts = New OleDbDataAdapter( strSelect, myconn )
dstProducts = New DataSet
dadProducts.Fill( dstProducts,"news" )
dadProducts.Fill( dstProducts,"SmallClass" )
dgrdProducts.DataSource = dstProducts
dgrdProducts.DataBind()
‘###############################################################################

解决方案 »

  1.   

    出错信息:在关键字 'order' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在关键字 'order' 附近有语法错误。源错误: 
    行 59:  dadProducts = New SQLDataAdapter( strSelect, myconn )
    行 60:    dstProducts = New DataSet()
    行 61:    dadProducts.Fill( dstProducts,"news" )
    行 62:  dadProducts.Fill( dstProducts,"SmallClass" )
    行 63:    dgrdProducts.DataSource = dstProducts
     
      

  2.   

    但我把SQL语句拷贝到 SQL SERVER里执行可以正常读取数据
      

  3.   

    缺少引号:
     = SmallClass.SmallClassID where news.sortid="&request("sid")&" order by news.id desc) order by news.id asc) order by news.id desc"
    改成:sortid=‘"&request("sid")&"’ order 
      

  4.   

    出错信息:在关键字 'order' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在关键字 'order' 附近有语法错误。源错误: 
    行 59:  dadProducts = New SQLDataAdapter( strSelect, myconn )
    行 60:    dstProducts = New DataSet
    行 61:    dadProducts.Fill( dstProducts,"news" )
    行 62:  dadProducts.Fill( dstProducts,"SmallClass" )
    行 63:    dgrdProducts.DataSource = dstProducts
     源文件: D:\netdoor.com\netdoor.com\jkkx\showmore.aspx    行: 61 堆栈跟踪: 
    [SqlException: 在关键字 'order' 附近有语法错误。]
       System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream) +723
       System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) +44
       System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +5
       System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
       ASP.showmore_aspx.Page_Load() in D:\netdoor.com\netdoor.com\jkkx\showmore.aspx:61
       System.Web.Util.ArglessEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +10
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +35
       System.Web.UI.Page.ProcessRequestMain() +731 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573 
      

  5.   

    order出错一般都是引号和空格引起的。
      

  6.   

    子查询要加别名。
    在 ")"和 "order by" 之间加一个字母做为别名。你的语句有两个地方都得加。