2013-10-22 45 views
1

如何跳过(或不提供一个可选的参数)与Database.ExecuteSqlCommand跳过(或不提供可选参数)

create procedure SetElementFrequency 
    @ElementTypeID integer, 
    @Frequency float = null, 
    @ElementName integer, 
as ... 

我想没有任何运气以下..它仍然预计为我提供@Frequency PARAM

Database.ExecuteSqlCommand(
    "exec SetElementFrequency {0}, {1}", 
    elementType, elementName); 

Database.ExecuteSqlCommand(
    "exec SetElementFrequency @ElementTypeID, @ElementName", 
    elementType, elementName); 

编辑:

的“@Frequency”参数将被完全删除fr om将来的存储过程。有一些遗留的应用程序仍在为@Frequency提供服务,并且不能在所有应用程序中对其进行更改。新创建的应用程序不会被供应@Frequency

回答

1

你可以改变你的exec格式使用SQL参数化这样的,看它是否适合你最好:

Database.ExecuteSqlCommand(
"exec SetElementFrequency @ElementTypeID = {0}, @Frequency = {1}, @ElementName = {2}", 
elementType, null, elementName); 
+0

确定...也许我应该更清除..“@Frequency”参数将在未来完全从商店proc中删除..有一些传统应用程序仍然提供“@Frequency”,并且它不是在所有应用程序中更改它的选项。新创建的应用程序不会提供@Frequency。 – user384080

相关问题