Вы можете сделать целое число обнуляемым и передавать его, только если оно имеет значение:
Обратите внимание, как ABC
передается как Nullable
тип:
Public Function RunStoredProce(ByVal ABC As Integer?, ByVal DEF As String) As IEnumerable(Of MyProjectStoredProcResults) Implements MyFunction.GetThatDataResult
Return (From p In dc.uspReportMyFunction(ABC, DEF) Select p).ToList
End Function
Я не знаю, как настроена ваша система, но предполагая, что uspReportMyFunction
- это функция, которая вызывает хранимую процедуру, вы бы хотели исключить ABC
, когда она равна нулю:
If ABC.HasValue Then
'Add ABC as a parameter
End If
'Add DEF as a parameter
'Execute the stored procedure
EDIT
Допустим, это функция данных, которая выполняет хранимую процедуру
public void SaveSomething(int jobID, int? postNumber)
{
using (var data = new DataAccess(this.ConnectionString))
{
data.ProcedureName = "SaveSomething";
data.AddParm("@JobID", SqlDbType.Int, JobID);
if (postNumber.HasValue)
data.AddParm("@PostNumber", SqlDbType.Int, PostNumber.GetValueOrDefault());
return data.ExecNonQuery();
}
}
Из внешнего интерфейса вы можете вызвать эту функцию следующим образом:
int jobID = 1;
int? postNumber = null;
GetWorkOrderDetailAdjustment(jobID, postNumber); //postNumber == null