rahul aggarwal
rahul aggarwal

Reputation: 265

Adding optional parameter

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

Answers (2)

James Dev
James Dev

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

Ferhat Sayan
Ferhat Sayan

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

Related Questions