添加可选参数
我想在下面的代码中给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”)。
请帮忙。
甚至更容易 -
retVal = dataContext.Database.ExecuteSqlCommand(
"EXEC usp_TestUpdate @ID, @TestNumber",
new SqlParameter("@ID", objTest.Id),
new SqlParameter("@TestNumber", string.IsNullOrEmpty(objTest.TestNumber) ? "0" : objTest.TestNumber),
我的一个参数是整数,我该如何使用上面的语句 –
不确定你的意思?你的TestNumber属性是一个字符串,Id是一个整数。 –
如果我将“string TestNumber {get; set;}”更改为“int TestNumber {get; set;}” –
更改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;
你可以这样做关于创建存储过程。或者如果你确实想在这里做到这一点,你不能只使用三元语句?新的SqlParameter(“@ TestNumber”,objTest.TestNumber ==“”?objTest.TestNumber:0) – Dane
我想修改代码级别不在过程级别 –
这不是你应该这样做的方式。在程序中使其成为可选项。 –