我有一个输出参数的存储过程。如何使用C#代码读取此值?如何运行C#中有OUTPUT参数的存储过程?
回答
我假设你使用ADO.NET?如果是这样,SqlParameter类具有属性“方向”。将方向设置为输出,并在查询执行后读取该参数的值。
事情是这样的:
using (SqlCommand cmd = new SqlCommand("MyStoredProcedure", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parm = new SqlParameter("@pkid", SqlDbType.Int);
parm.Value = 1;
parm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parm);
SqlParameter parm2 = new SqlParameter("@ProductName", SqlDbType.VarChar);
parm2.Size = 50;
parm2.Direction = ParameterDirection.Output; // This is important!
cmd.Parameters.Add(parm2);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
我有另一个问题,我需要确定输出参数 是十进制(8,2)如何! – shmandor 2010-08-08 09:37:09
我不确定我是否理解这个问题。如果您要在输出变量中返回一个小数,您应该将SqlDbType设置为十进制。如果你实际上返回一个十进制数,你可以像这样进行转换:(十进制)cmd.Parameters [@“MyDecimal”] Value – Merrimack 2010-08-08 09:46:31
我强烈建议将'SqlConnection'和'SqlCommand'放入'using(.... ){...}'块作为最佳实践 – 2010-08-08 09:50:49
- 1. SqlServer中的存储过程OUTPUT参数
- 2. .NET CLR存储过程OUTPUT参数
- 3. 使用Output参数执行存储过程?
- 4. 如何通过C#中的存储过程传递参数
- 5. 运行存储过程带有参数的查询
- 6. 如何将XML参数添加到C#中的存储过程?
- 7. 如何在c#中获取存储过程的参数名称
- 8. 如何将具有参数的SQL Server存储过程转换为具有参数的Oracle存储过程?
- 9. 我可以在存储过程中使用可选的OUTPUT参数吗?
- 10. 执行与参数的存储过程
- 11. 如何使用datetime参数调用存储过程中的存储过程
- 12. 存储过程的参数 - 有时NULL
- 13. C#Oracle存储过程参数顺序
- 14. .net:如何在c#中使用可为空的参数执行存储过程?
- 15. 运行存储过程
- 16. Netezza存储过程运行
- 17. 如何在.NET中运行时确定SQL Server存储过程参数?
- 18. 如何在执行存储过程中使用变量参数?
- 19. 如何进行多输出参数在存储过程中
- 20. 用c输出参数运行存储的sql程序#
- 21. FreeTDS:如何设置运行存储过程的参数字符集
- 22. MySQL存储过程参数
- 23. 存储过程在参数
- 24. 存储过程NULL参数
- 25. DbNull.Value存储过程参数?
- 26. 参数化存储过程
- 27. 在存储过程参数
- 28. 如何使用openrowset执行存储过程的参数
- 29. 如何通过数据表中的SQL存储过程有多个参数
- 30. 如何在使用CRUD的存储过程时映射存储过程参数?
请邮寄到现在为止您编写的代码。 – 2010-08-08 09:02:22
我喜欢这个,因为这是一个有用的问题,但由于缺乏“我试过这个”我不能这样做。 – JYelton 2013-09-16 17:37:40