'=' 附近有语法错误。
说明: 执行当前 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语句,应该是语法有误.