在过去的几周内,我的客户的客户在他们的网站上运行任何类型的查询时都收到了以下错误。我不熟悉SQL,所以任何帮助都将不胜感激。
堆栈追踪:
[SqlException(0x80131904):转换算术溢出错误 数字到数据类型数字。]
System.Data.SqlClient.SqlConnection.OnError(SqlException异常, Boolean breakConnection)+1951066
System.Data.SqlClient.SqlInternalConnection.OnError(SQLEXCEPTION exception,Boolean breakConnection)+4847051
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)+194 System.Data.SqlClient.TdsParser.Run(RunBehavior) runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)+2392 System.Data.SqlClient.SqlDataReader.HasMoreRows() +157 System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)+197 System.Data.SqlClient.SqlDataReader.Read()+ 9
System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) +78 System.Data.Common.DataAdapter.FillFromReader(DataSet数据集,DataTable数据表,String srcTable,DataReaderContainer dataReader, Int32 startRecord,Int32 maxRecords,DataColumn parentChapterColumn, 对象parentChapterValue)+164
System.Data.Common.DataAdapter.Fill(DataSet dataSet,String srcTable, IDataReader dataReader,Int32 startRecord,Int32 maxRecords)+353
System.Data.Common.DbDataAdapter.FillInternal(DataSet数据集, DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)+164
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令, CommandBehavior行为)+287
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,String srcTable)+92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments 参数)+1297 System.Web.UI.WebControls.Repeater.GetData()+35
System.Web.UI.WebControls.Repeater.CreateControlHierarchy(布尔 useDataSource)+220
System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)+51
System.Web.UI.WebControls.Repeater.DataBind()+75
System.Web.UI.WebControls.Repeater.EnsureDataBound()+55
System.Web.UI.WebControls.Repeater.OnPreRender(EventArgs e)+15
System.Web.UI.Control.PreRenderRecursiveInternal()+80
System.Web.UI.Control.PreRenderRecursiveInternal()+171
System.Web.UI.Control.PreRenderRecursiveInternal()+171
System.Web.UI.Control.PreRenderRecursiveInternal()+171
System.Web.UI.Control.PreRenderRecursiveInternal()+171
System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 842
答案 0 :(得分:1)
要看的地方是:
专注于使用数字字段查找更改值的内容,并检查要尝试进行这些更改的数据类型。当你看到不匹配时,这很可能是你的罪魁祸首。
答案 1 :(得分:0)
将sum(col1)
更改为sum(cast(col1 as bigint))
以动态更改当前列的类型,或在表格设计模式下更改它。