当前位置: 代码迷 >> Sql Server >> 错误详细信息: System.Data.SqlClient.SqlException: '=' 附近有语法异常
  详细解决方案

错误详细信息: System.Data.SqlClient.SqlException: '=' 附近有语法异常

热度:88   发布时间:2016-04-24 09:21:24.0
异常详细信息: System.Data.SqlClient.SqlException: '=' 附近有语法错误。

'=' 附近有语法错误。 
  说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

 异常详细信息: System.Data.SqlClient.SqlException: '=' 附近有语法错误。

源错误: 



行 40:         SqlDataAdapter cmd = new SqlDataAdapter(SetStr, tmpCnn);
行 41:         DataSet tmpDataSet = new DataSet();
行 42:         cmd.Fill(tmpDataSet);
行 43:         return tmpDataSet.Tables[0];
行 44:     }
  

源文件:  f:\web\系统\App_Code\DataControl.cs    行:  42 

堆栈跟踪: 



[SqlException (0x80131904): '=' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +2073294
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5063436
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
   System.Data.SqlClient.SqlDataReader.get_MetaData() +86
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +311
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +987
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
   System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +10
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +144
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +319
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +94
   DataControl.GetData(String SetStr) in f:\web\毕业设计1\App_Code\DataControl.cs:42
   ViewImage.Page_Load(Object sender, EventArgs e) in f:\web\毕业设计1\ViewImage.aspx.cs:19
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207


代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// DataBase 的摘要说明

/// </summary>
public class DataControl
{
    public DataControl()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
    public static SqlConnection createConnection()
    {
        //从webconfig中取得字符串连接方式
        SqlConnection cnn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        return cnn;
    }
    public static DataTable GetData(string SetStr )
    {
        //定义数据库连接 查询并填充DataSet

        SqlConnection tmpCnn = DataControl.createConnection();
        if (tmpCnn.State != 0)
        {
            tmpCnn.Close();
        }
        tmpCnn.Open();
        SqlDataAdapter cmd = new SqlDataAdapter(SetStr, tmpCnn);
        DataSet tmpDataSet = new DataSet();
        cmd.Fill(tmpDataSet);
        return tmpDataSet.Tables[0];
    }

    public static void Execute(string sqlStr)
    {
        //定义数据库连接  执行数据库的增加 修改和删除数据的功能
        SqlConnection tmpCnn = DataControl.createConnection();
        if (tmpCnn.State != 0)
        {
            tmpCnn.Close();
        }
        tmpCnn.Open();

        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = sqlStr;
        cmd.Connection = tmpCnn;
        cmd.ExecuteNonQuery();
    }

    
}


 

------解决思路----------------------
用SQL Profiler工具跟踪一下后台执行的SQL语句,应该是语法有误.
  相关解决方案