我有一些可选的输入参数,我在C#类方法中使用它们。 由于可选语法在未使用参数时创建一个值为“0”的值,因此我调用的SQL插入命令最终会插入这样的值。 然而,当不使用参数时,我需要命令插入一个NULL值,而不是0。 有没有办法在SqlParameter声明中指定一个NULL值,以实现此目的,而不需要使用大量的“if”语句?
以下是我正在引用的代码。 是否有语法/某种命令可以让我在SqlParameter声明中指定一个NULL值?
public int batchInsert
(
int id,
int outcome,
int input = 0,
int add = 0,
int update = 0,
int delete = 0,
int errors = 0,
int warnings = 0
)
{
string sts;
if (outcome == 0)
{
sts = "S";
}
else if (outcome == 1)
{
sts = "W";
}
else
{
sts = "E";
}
SqlConnection sqlConn = new SqlConnection(this.connString);
SqlParameter runId = new SqlParameter("@runId", id);
SqlParameter endTime = new SqlParameter("@endTime", DateTime.Now);
SqlParameter status = new SqlParameter("@status", sts);
SqlParameter sqlInput = new SqlParameter("@itemsRead", input);
SqlParameter sqlAdd = new SqlParameter("@add", add);
SqlParameter sqlUpdate = new SqlParameter("@update", update);
SqlParameter sqlDelete = new SqlParameter("@delete", delete);
SqlParameter sqlError = new SqlParameter("@errors", errors);
SqlParameter sqlWarning = new SqlParameter("@warnings", warnings);
SqlParameter result = new SqlParameter("@outcome", results[outcome]);
SqlCommand sqlComm = new SqlCommand(insertCommand(), sqlConn);
NULL
替换为C#中的null
:myVariable ?? (object)DBNull.Value
。 - HABO