天天看點

dbnull和null,DbNull.Value和DbNull.Value.ToString()之間的差別

dbnull和null,DbNull.Value和DbNull.Value.ToString()之間的差別

I wanted to learn which usage is true?

if(!string.IsNullOrEmpty(parentID))

cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID));

else

cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value));

OR

if(!string.IsNullOrEmpty(parentID))

cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID));

else

cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value.ToString()));

解決方案cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID));

This is passing a parentID to parameter @ParentSesID.

cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value));

is passing a null value to parameter.

cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value.ToString()));

is passing equal to string.Empty, which is not allowed in numerical data types.

cmd.Parameters.Add(new SqlParameter("@ParentSesID", null);

is same as ignoring the parameter.

So when you need to pass null to SP you've to pass DBNull.Value.