刚刚学习,制作一个ObjectDataSource的三层数据结构的案例。建立一个App_Code的文件夹,并建立一个CS文件,定义了一个类,再类中写入数据库的查询函数,函数如下    public static DataSet GetAsk(string AskID)
    {
        string connectionstring = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        SqlConnection dbconnection = new SqlConnection(connectionstring);
        string querystring = "selest AskTitle,Askcontent,AskUserId,AskID from Live_Ask where AskID=@AskID";
        SqlCommand dbcommand = new SqlCommand();
        dbcommand.Connection = dbconnection;
        dbcommand.CommandType = CommandType.Text;
        dbcommand.CommandText = querystring;
        SqlParameter dbparameter_state = new SqlParameter();
        dbparameter_state.ParameterName = "@AskID";
        dbparameter_state.Value = AskID;
        dbparameter_state.DbType = DbType.StringFixedLength;
        dbcommand.Parameters.Add(dbparameter_state);
        SqlDataAdapter dataAdapter = new SqlDataAdapter(dbcommand);
        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);
        return ds;
    }
我再测试的时候传入AskID为7的时候他提示错误:
'selest' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 'selest' 附近有语法错误。源错误: 
行 39:         SqlDataAdapter dataAdapter = new SqlDataAdapter(dbcommand);
行 40:         DataSet ds = new DataSet();
行 41:         dataAdapter.Fill(ds);
行 42:         return ds;
行 43:     }
 源文件: d:\nba\netweb\App_Code\AskDB.cs    行: 41 堆栈跟踪: 
[SqlException (0x80131904): 'selest' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +925466
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800118
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
   System.Data.SqlClient.SqlDataReader.get_MetaData() +62
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
   System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +7
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +141
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +137
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +86
   AskDB.GetAsk(String AskID) in d:\nba\netweb\App_Code\AskDB.cs:41[TargetInvocationException: 调用的目标发生了异常。]
   System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
   System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +371
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
   System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +480
   System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1960
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
   System.Web.UI.WebControls.GridView.DataBind() +4
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.PreRenderRecursiveInternal() +50
   System.Web.UI.Control.PreRenderRecursiveInternal() +170
   System.Web.UI.Control.PreRenderRecursiveInternal() +170
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2041 
高手们帮看看

解决方案 »

  1.   


     string querystring = "select AskTitle,Askcontent,AskUserId,AskID from Live_Ask where AskID=@AskID";
    粗心
      

  2.   

    "selest AskTitle,Askcontent,AskUserId,AskID from Live_Ask where AskID=@AskID";这句单词拼错了,是“select”不是selest
      

  3.   

    "selest AskTitle,Askcontent,AskUserId,AskID from Live_Ask where AskID=@AskID";这句单词拼错了,是“select”不是selest
      

  4.   

    "selest AskTitle,Askcontent,AskUserId,AskID from Live_Ask where AskID=@AskID";这句单词拼错了,是“select”不是selest