Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server Management Studio成功时System.Data.SqlClient失败_C#_Sql_Sql Server 2008_Stored Procedures - Fatal编程技术网

C# SQL Server Management Studio成功时System.Data.SqlClient失败

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

我希望讨论更多的是推测性的,而不是确定性的,因为这个问题本身就是推测性的。这在本质上是相当令人困惑的

我正在研究利用Microsoft.Practices.EnterpriseLibrary进行SQL Server数据访问的.NET 4.0 C代码

该代码调用一个在SQLServerManagementStudio中运行良好的存储过程并返回结果。问题是,当从C端调用过程时,会引发异常

违规代码如下:

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语句。检查表架构的数据类型,然后将其与正在传递或试图检索的值的数据类型进行比较