使用 C# 和 System.Data.SqlClient,有没有办法在实际执行 SQL Server 上的存储过程之前检索属于该存储过程的参数列表?
我有一个“多环境”场景,其中同一数据库模式有多个版本。环境的示例可能是“开发”、“暂存”和“生产”。 “开发”将有一个版本的存储过程,“登台”将有另一个版本。
我想做的就是在向参数传递值并调用存储过程之前验证参数是否存在。避免 SqlException 而不是必须捕获它对我来说是一个优点。
Joshua
你想要的SqlCommandBuilder.DeriveParameters(SqlCommand) http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.deriveparameters.aspx方法。请注意,它需要与数据库进行额外的往返,因此这会对性能造成一定程度的影响。您应该考虑缓存结果。
调用示例:
using (SqlConnection conn = new SqlConnection(CONNSTRING))
using (SqlCommand cmd = new SqlCommand("StoredProc", conn)) {
cmd.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters["param1"].Value = "12345";
// ....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)