1

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

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

我尝试了以下没有任何运气..它仍然希望我提供@Frequency参数

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

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

编辑:

将来,“@Frequency”参数将从存储过程中完全删除。仍有一些遗留应用程序仍在提供,@Frequency并且无法在所有应用程序中更改它。新创建的应用程序不会提供@Frequency

4

1 回答 1

1

您可以更改 exec 格式以使用这样的 SQL 参数化,看看它是否更适合您:

Database.ExecuteSqlCommand(
"exec SetElementFrequency @ElementTypeID = {0}, @Frequency = {1}, @ElementName = {2}",
elementType, null, elementName);
于 2013-10-23T10:09:01.843 回答