C# SQL Server Management Studio成功时System.Data.SqlClient失败
我希望讨论更多的是推测性的,而不是确定性的,因为这个问题本身就是推测性的。这在本质上是相当令人困惑的 我正在研究利用Microsoft.Practices.EnterpriseLibrary进行SQL Server数据访问的.NET 4.0 C代码 该代码调用一个在SQLServerManagementStudio中运行良好的存储过程并返回结果。问题是,当从C端调用过程时,会引发异常 违规代码如下:C# SQL Server Management Studio成功时System.Data.SqlClient失败,c#,sql,sql-server-2008,stored-procedures,C#,Sql,Sql Server 2008,Stored Procedures,我希望讨论更多的是推测性的,而不是确定性的,因为这个问题本身就是推测性的。这在本质上是相当令人困惑的 我正在研究利用Microsoft.Practices.EnterpriseLibrary进行SQL Server数据访问的.NET 4.0 C代码 该代码调用一个在SQLServerManagementStudio中运行良好的存储过程并返回结果。问题是,当从C端调用过程时,会引发异常 违规代码如下: Database _db = DatabaseFactory.CreateDatabase(in
Database _db = DatabaseFactory.CreateDatabase(instance_name);
string _sql = "[dbo].[usp_stored_procedure]";
DbCommand _cmd = _db.GetStoredProcCommand(_sql);
/* _db.AddInParameter calls to supply parameters */
DataSet _ds = _db.ExecuteDataSet(_cmd);
最后一行抛出一个异常,表示:
将int转换为数据类型numeric时出现算术溢出错误。
在System.Data.SqlClient.SqlConnection.OnErrorSqlException异常处,布尔断开连接
....
位于System.Data.SqlClient.SqlDataReader.Read
....
在System.Data.Common.DataAdapter.FillLoadDataRowSchemaMapping映射处
....
在Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteDataSetDbCommand中
。。。。
在DataAccess.call\存储\过程字符串实例\名称,int_客户id,int_客户组id,int_事件类型id,日期时间开始日期,日期时间结束日期,整数_员工类型id,int_调查id,int_ro_日期
我忽略了我积累的不必要的堆栈跟踪,以及引发异常的函数。参数按该顺序提供,类型精确匹配
在存储过程中有小数18、10的用法,存储过程处理以前的一组数据,在C端,它也会给新的数据提供带来问题
我的问题是,这种行为是否是一个已知的问题,或者从哪里开始寻找。在SQLServerManagementStudio中工作的东西在C代码调用中不起作用,这似乎很奇怪。也许您添加的参数类型不正确
您应该告诉我们sql中字段的类型,并在codw中添加参数这不是与sql Server相关的错误,这表示无法将从数据库返回的值封送到数据集中使用的.NET数据类型中。应附加SQL Profiler,查看代码是否正在执行假定的SQL语句。检查表架构的数据类型,然后将其与正在传递或试图检索的值的数据类型进行比较