2

在过去的几周里,我客户的客户在他们的网站上运行任何类型的查询时都会收到以下错误。我不精通 SQL,所以任何帮助将不胜感激。

堆栈跟踪:

[SqlException(0x80131904):将数字转换为数据类型数字的算术溢出错误。]
System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔breakConnection)+1951066
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔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 dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) + 164
System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +353
System.Data.Common.DbDataAdapter.FillInternal(DataSet 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 command, CommandBehavior 行为) +287
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
System. Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1297 System.Web.UI.WebControls.Repeater.GetData() +35
System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean 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,布尔型 includeStagesAfterAsyncPoint)+842

4

2 回答 2

3

要看的地方是:

  1. 有一个更新查询试图用较大的数字数据类型(如单数或双数)更改 int(或其他一些小数数据类型)。
  2. 它正在尝试具有相同条件的 isert。

专注于寻找带有数值字段的改变值的东西,并检查哪些数据类型试图做出这些改变。当您看到不匹配时,这很可能是您的罪魁祸首。

于 2013-05-31T19:42:17.523 回答
0

更改sum(col1)sum(cast(col1 as bigint))动态更改当前列的类型或在表格设计模式下更改。

于 2014-09-01T08:48:41.180 回答