第 1 行: '?' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '?' 附近有语法错误。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[SqlException (0x80131904): 第 1 行: '?' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +95
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +82
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +346
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +3244
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +52
   System.Data.SqlClient.SqlDataReader.get_MetaData() +130
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +371
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1121
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +334
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +45
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +162
   System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +35
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +32
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +183
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +308
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +152
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2863
   System.Web.UI.WebControls.Repeater.GetData() +58
   System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource) +292
   System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e) +72
   System.Web.UI.WebControls.Repeater.DataBind() +86
   System.Web.UI.WebControls.Repeater.EnsureDataBound() +83
   System.Web.UI.WebControls.Repeater.OnPreRender(EventArgs e) +27
   System.Web.UI.Control.PreRenderRecursiveInternal() +148
   System.Web.UI.Control.PreRenderRecursiveInternal() +233
   System.Web.UI.Control.PreRenderRecursiveInternal() +233
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4437 
这个问题 不知道大家有没碰到?

解决方案 »

  1.   

    SqlCommand执行的Sql语句有错误。
      

  2.   

    也许你的sql里出现了个?号。
      

  3.   

    sql语句的问题啦。你仔细看下。。
      

  4.   

    sql语句中是有?这个绑定数据库
    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
            <ItemTemplate>
            <li style="width:123px; float: right;"><a title="<%#Eval("propic") %>" href="productlist.aspx? id='<%#Eval("id") %>' "><%#Eval("propic") %></a></li>
            </ItemTemplate>
            </asp:Repeater>  
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
                SelectCommand="SELECT TOP 3 * FROM productclass WHERE productid = ? ">
                <SelectParameters>
                    <asp:Parameter DefaultValue="0" Name="productid" Type="Int32" /> 
                </SelectParameters>
            </asp:SqlDataSource><asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
                SelectCommand="SELECT * FROM wangzhan WHERE id = ? ">
                <SelectParameters>
                    <asp:Parameter DefaultValue="1" Name="id" Type="Int32" />
                </SelectParameters>
            </asp:SqlDataSource><asp:SqlDataSource ID="SqlDataSource3" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
                    ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
                   SelectCommand="SELECT top 3 * FROM newscontent WHERE picture < ? ORDER BY time DESC">
                    <SelectParameters>
                        <asp:Parameter DefaultValue="0" Name="picture" Type="String" />
                    </SelectParameters>
                </asp:SqlDataSource>
      

  5.   

    以第一个为例<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
                SelectCommand="SELECT TOP 3 * FROM productclass WHERE productid = @productid ">
                <SelectParameters>
                    <asp:Parameter DefaultValue="0" Name="productid" Type="Int32" /> 
                </SelectParameters>
            </asp:SqlDataSource>
      

  6.   

    SELECT TOP 3 * FROM productclass WHERE productid = ?
    去掉
      

  7.   

    不是sql语句问题 我把sql语句全注释了 也是上面的问题看样子应该还是web.config 问题啊   郁闷
    <?xml version="1.0" encoding="utf-8" ?>
    <!-- 
        注意: 除了手动编辑此文件以外,您还可以使用 
        Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
         “网站”->“Asp.Net 配置”选项。
        设置和注释的完整列表在 
        machine.config.comments 中,该文件通常位于 
        \Windows\Microsoft.Net\Framework\v2.x\Config 中
    -->
    <configuration>
        <appSettings/>
      <connectionStrings>
        <add name="ConnectionString" connectionString="server =(local); database = maoyi ; uid =sa; pwd =" providerName="System.Data.SqlClient"/>
        <add name="ConnectionString1" connectionString="Data Source=zhu;Initial Catalog=xscj;Integrated Security=True" providerName="System.Data.SqlClient"/>
      </connectionStrings>
        <system.web>
            <!-- 
                设置 compilation debug="true" 可将调试符号插入
                已编译的页面中。但由于这会 
                影响性能,因此只应在开发过程中设置 
                此值。            Visual Basic 选项:
                设置 strict="true" 将禁止所有会导致 
                数据丢失的类型转换。 
                设置 explicit="true" 将强制声明所有变量。
            -->
          <compilation debug="true" strict="false" explicit="true">
            <assemblies>
              <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
              <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
              <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
              <add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            </assemblies>
          </compilation>      <pages>
            <namespaces>
              <clear/>
              <add namespace="System"/>
              <add namespace="System.Collections"/>
              <add namespace="System.Collections.Specialized"/>
              <add namespace="System.Configuration"/>
              <add namespace="System.Text"/>
              <add namespace="System.Text.RegularExpressions"/>
              <add namespace="System.Web"/>
              <add namespace="System.Web.Caching"/>
              <add namespace="System.Web.SessionState"/>
              <add namespace="System.Web.Security"/>
              <add namespace="System.Web.Profile"/>
              <add namespace="System.Web.UI"/>
              <add namespace="System.Web.UI.WebControls"/>
              <add namespace="System.Web.UI.WebControls.WebParts"/>
              <add namespace="System.Web.UI.HtmlControls"/>
            </namespaces>
          </pages>
            <!--
                通过 <authentication> 节可以配置 ASP.NET 使用的 
                安全身份验证模式,
                以标识传入的用户。 
            -->
          <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>      </httpHandlers>
            <authentication mode="Windows" />
            <!--
                如果在执行请求的过程中出现未处理的错误,
                则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
                开发人员通过该节可以配置
                要显示的 html 错误页
                以代替错误堆栈跟踪。        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
        </system.web>
    </configuration>
      

  8.   

    Highlight下吧以第一个为例<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
      ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
      SelectCommand="SELECT TOP 3 * FROM productclass WHERE productid = @productid ">
      <SelectParameters>
      <asp:Parameter DefaultValue="0" Name="productid" Type="Int32" /> 
      </SelectParameters>
      </asp:SqlDataSource>
      

  9.   

    恩 谢谢   是语法错误 不过是在WebUserControl(用户控件)中编写有误