从数据类型 decimal 转换为 numeric 时出错
来源:互联网 发布:截图软件snagit 编辑:程序博客网 时间:2024/04/23 21:49
从数据类型 decimal 转换为 numeric 时出错。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 从数据类型 decimal 转换为 numeric 时出错。
源错误:
行 46: {
行 47: PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
行 48: int val = cmd.ExecuteNonQuery();行 49: cmd.Parameters.Clear();
行 50: return val;
源文件: E:/VS 2005/统计局/WebApp/DBUtility/SQLHelper.cs 行: 48
堆栈跟踪:
[SqlException (0x80131904): 从数据类型 decimal 转换为 numeric 时出错。]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +862234
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739110
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +149
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +903
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +415
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +135
DBUtility.SqlHelper.ExecuteNonQuery(String connectionString, CommandType cmdType, String cmdText, SqlParameter[] commandParameters) in E:/VS 2005/统计局/WebApp/DBUtility/SQLHelper.cs:48
SQLServerDAL.Article.AddEditArticles(ArticleInfo model) in E:/VS 2005/统计局/WebApp/SQLServerDAL/Article.cs:68
BLL.Article.AddEditArticles(ArticleInfo model) in E:/VS 2005/统计局/WebApp/BLL/Article.cs:19
Admin_Articles_EditArticles.btnAdd_Click(Object sender, EventArgs e) in e:/VS 2005/统计局/WebApp/Web/Admin/Articles/EditArticles.aspx.cs:62
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
USE [APPDB_Web]
GO
/****** 对象: StoredProcedure [dbo].[Pap_Articles] 脚本日期: 12/19/2007 15:49:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Pap_Articles]
(
@dc_Id decimal(18,0) OUTPUT,
@vc_Title varchar(255) ,
@vc_Color varchar(10) ,
@vc_Key varchar(50) ,
@vc_From varchar(50) ,
@txt_text text ,
@i_Userid int ,
@bt_Up bit ,
@dt_Update datetime ,
@bt_Red bit ,
@bt_In bit ,
@bt_Out bit ,
@vc_Author varchar(50) ,
@i_Mid int,
@i_Ret int OUTPUT
)
AS
IF @dc_Id=0
BEGIN
BEGIN TRAN
--添加文章信息
INSERT INTO tb_Articles(
[vc_Title],[vc_Color],[vc_Key],[vc_From],[txt_text],[i_Userid],[bt_Up],[dt_Update],[bt_Red],[bt_In],[bt_Out],[vc_Author],[i_Mid]
)VALUES(
@vc_Title,@vc_Color,@vc_Key,@vc_From,@txt_text,@i_Userid,@bt_Up,@dt_Update,@bt_Red,@bt_In,@bt_Out,@vc_Author,@i_Mid
)
--获取添加后文章编号
IF @@ROWCOUNT=1
BEGIN
SET @dc_Id=@@IDENTITY
END
--插入流程信息
INSERT INTO tb_ArticlesAudiFlowInfo([dc_AID],[i_FlowId],[i_ToUserId],[bt_Auding],[bt_Auded],[bt_Return])
SELECT TOP 1 @dc_Id,i_FlowId,i_UserId,1,0,0 FROM tb_ArticlesAudiFlow where i_MenuId=@i_Mid ORDER BY i_FlowId
IF @@ERROR=0
BEGIN
SET @i_Ret=1 --添加成功
COMMIT TRAN
END
ELSE
BEGIN
SET @i_Ret=0 --添加失败
ROLLBACK TRAN
END
END
最终解决办法: 看关键的红色字,把
/// 添加编辑文章及流程信息
/// </summary>
/// <param name="model">文章相关字段</param>
/// <returns></returns>
public decimal AddEditArticles(ArticleInfo model)
{
SqlParameter[] parameters = SqlHelper.GetCachedParameters("Pap_Articles");
if (parameters == null)
{
parameters = new SqlParameter[]{
new SqlParameter("@dc_Id", SqlDbType.Decimal),
new SqlParameter("@vc_Title", SqlDbType.VarChar,255),
new SqlParameter("@vc_Color", SqlDbType.VarChar,10),
new SqlParameter("@vc_Key", SqlDbType.VarChar,50),
new SqlParameter("@vc_From", SqlDbType.VarChar,50),
new SqlParameter("@txt_text", SqlDbType.Text),
new SqlParameter("@i_Userid", SqlDbType.Int,4),
new SqlParameter("@bt_Up", SqlDbType.Bit,1),
new SqlParameter("@dt_Update", SqlDbType.DateTime),
new SqlParameter("@bt_Red", SqlDbType.Bit,1),
new SqlParameter("@bt_In", SqlDbType.Bit,1),
new SqlParameter("@bt_Out", SqlDbType.Bit,1),
new SqlParameter("@vc_Author", SqlDbType.VarChar,50),
new SqlParameter("@i_Mid", SqlDbType.Int,4),
new SqlParameter("@i_Ret",SqlDbType.Int)
};
SqlHelper.CacheParameters("Pap_Articles", parameters);
}
parameters[0].Direction = ParameterDirection.InputOutput;
parameters[0].Value = model.dc_Id;
parameters[1].Value = model.vc_Title;
parameters[2].Value = model.vc_Color;
parameters[3].Value = model.vc_Key;
parameters[4].Value = model.vc_From;
parameters[5].Value = model.txt_text;
parameters[6].Value = model.i_Userid;
parameters[7].Value = model.bt_Up;
parameters[8].Value = model.dt_Update;
parameters[9].Value = model.bt_Red;
parameters[10].Value = model.bt_In;
parameters[11].Value = model.bt_Out;
parameters[12].Value = model.vc_Author;
parameters[13].Value = model.i_Mid;
parameters[14].Direction = ParameterDirection.Output;
SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnectionString, CommandType.StoredProcedure, "Pap_Articles", parameters);
return (decimal)parameters[0].Value;
}
parameters[0].Direction = ParameterDirection.InputOutput;
parameters[0].Value = model.dc_Id;
增加:
parameters[0].Precise=18
parameters[0].Scale=0
这样就解决问题了
- 从数据类型 decimal 转换为 numeric 时出错
- 从数据类型 nvarchar 转换为 numeric 时出错
- linq 调用 有返回值(numeric)的存储过程,报错“从数据类型 numeric 转换为 numeric 时出错”
- sql server添加数据时,从数据类型 varchar 转换为 numeric 时出错
- 从数据类型 varchar 转换为 numeric 时出错的查找办法
- 在SQL SERVER数据库中【从数据类型 varchar 转换为 numeric 时出错】
- SQLServer转换SQL中的数据(将数据类型 varchar 转换为 numeric 时出错)
- SQLServer转换SQL中的数据(将数据类型 varchar 转换为 numeric 时出错)
- mysql decimal、numeric数据类型
- mysql decimal、numeric数据类型
- mysql decimal、numeric数据类型
- mysql decimal、numeric数据类型
- mysql decimal、numeric数据类型
- 从数据类型 varchar 转换为 float 时出错
- 从数据类型 int 转换为 nvarchar 时出错。
- 存储过程,从数据类型 nvarchar 转换为 int 时出错
- 数据库异常 :从数据类型nvarchar 转换为bigint时出错
- 从数据类型 nvarchar 转换为 float 时出错
- Flex之TitleWindow学习
- 函数调用规范[转载]
- 设计原则之开放---封闭原则
- SOA
- 个人简历
- 从数据类型 decimal 转换为 numeric 时出错
- 微软“必应(bing)”兼容性的缺陷
- 求助:JSP+SQL2000毕业设计
- C#中的delegate
- 设计原则之单一职责原则
- [原创]More源代码第二版
- 解决map和set的一点疑虑
- 使用TOMCAT5.5连接池连接mysql(解决Cannot create JDBC driver of class '' for connect URL 'null')
- 在map中插入自定义类对象