The parameterized query … expects the parameter '@units', which was not supplied

后端 未结 5 2019
耶瑟儿~
耶瑟儿~ 2020-12-01 10:02

I\'m getting this exception:

The parameterized query \'(@Name nvarchar(8),@type nvarchar(8),@units nvarchar(4000),@rang\' expects the parameter \'@uni

5条回答
  •  失恋的感觉
    2020-12-01 10:51

    Here's a way using the null-coalescing operator:

    cmd.Parameters.AddWithValue("@units", units ?? (object)DBNull.Value);
    cmd.Parameters.AddWithValue("@range", range ?? (object)DBNull.Value);
    cmd.Parameters.AddWithValue("@scale", scale ?? (object)DBNull.Value);
    cmd.Parameters.AddWithValue("@description", description ?? (object)DBNull.Value);
    

    Or for more strict type checking:

    cmd.Parameters.Add("@units", SqlDbType.Int).Value = units ?? (object)DBNull.Value;
    cmd.Parameters.Add("@range", SqlDbType.Int).Value = range ?? (object)DBNull.Value;
    cmd.Parameters.Add("@scale", SqlDbType.Int).Value = scale ?? (object)DBNull.Value;
    cmd.Parameters.Add("@description", SqlDbType.VarChar).Value = description ?? (object)DBNull.Value;
    

    The operator also be chained:

    int?[] a = { null, null, 1 };
    Console.WriteLine(a[0] ?? a[1] ?? a[2]);
    

提交回复
热议问题