2016-02-29 3 views
1

Я хочу дать необязательное значение параметра objTest.TestNumber в моем нижнем коде. Мой код выглядит следующим образом: -Добавление необязательного параметра

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(); 
    } 

Сообщать изменения мне нужно сделать, чтобы сделать «@TestNumber», objTest.TestNumber в качестве дополнительного параметра. Я хочу установить значение по умолчанию равным нулю («0»).

Пожалуйста, помогите.

+1

Вы бы это сделать о создании хранимой процедуры. Или, если вы действительно хотите сделать это, не могли бы вы просто использовать тройное заявление? новый SqlParameter ("@ TestNumber", objTest.TestNumber == ""? objTest.TestNumber: 0) – Dane

+0

Я хочу внести изменения в уровень кода не на уровне процедуры –

+0

Это не так, как вы должны это делать. Сделайте это необязательным при процедуре. –

ответ

6

Или еще проще -

  retVal = dataContext.Database.ExecuteSqlCommand(
       "EXEC usp_TestUpdate @ID, @TestNumber", 
       new SqlParameter("@ID", objTest.Id), 
       new SqlParameter("@TestNumber", string.IsNullOrEmpty(objTest.TestNumber) ? "0" : objTest.TestNumber), 
+0

мой единственный параметр является целым числом, как я могу использовать вышеприведенный оператор –

+0

Не уверен, что вы имеете в виду? Свойство TestNumber - это строка, а Id - целое число. –

+0

если я изменяю «string TestNumber {get; set;}» на «int TestNumber {get; set;}» –

4

Изменить класс TestInfo следующим образом:

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; } 
    } 
} 

Вы также можете изменить свой метод и сказать что-то вроде:

var testNumber = string.IsNullOrEmpty(objTest.TestNumber) ? "0" : obj.TestNumber;