Reputation: 265
I want to give optional parameter value to objTest.TestNumber in my below code. My code as follows:-
public class TestInfo
{
public int Id { get; set; }
public string TestNumber { get; set; }
}
public string TestUpdate(TestInfo objTest)
{
int retVal = 0;
try
{
dataContext = new AccretiveAPIContext(GetConnection(locationId));
retVal = dataContext.Database.ExecuteSqlCommand(
"EXEC usp_TestUpdate @ID, @TestNumber",
new SqlParameter("@ID", objTest.Id),
new SqlParameter("@TestNumber", objTest.TestNumber),
);
}
catch (Exception)
{
throw;
}
return retVal.ToString();
}
Please tell the changes I need to make to make "@TestNumber", objTest.TestNumber as optional parameter. I want to set its default value to zero ("0").
Please help.
Upvotes: 1
Views: 73
Reputation: 3009
Or even easier -
retVal = dataContext.Database.ExecuteSqlCommand(
"EXEC usp_TestUpdate @ID, @TestNumber",
new SqlParameter("@ID", objTest.Id),
new SqlParameter("@TestNumber", string.IsNullOrEmpty(objTest.TestNumber) ? "0" : objTest.TestNumber),
Upvotes: 6
Reputation: 226
Change your TestInfo class as following:
public class TestInfo
{
private string _testNumber;
public int Id { get; set; }
public string TestNumber
{
get
{
if (string.IsNullOrEmpty(_testNumber))
{
_testNumber = "0";
}
return _testNumber;
}
set { _testNumber = value; }
}
}
You could also modify your method and say something like:
var testNumber = string.IsNullOrEmpty(objTest.TestNumber) ? "0" : obj.TestNumber;
Upvotes: 4