Why does this code fail?
Code:
sqlCMD.Parameters.Add(new SqlParameter("@id_test", SqlDbType.Int).Value =
	dataRow.Isid_testNull() ? DBNull.Value : (object)dataRow.id_test);
While these two methods succeed?

Code:
sqlCMD.Parameters.Add(new SqlParameter("@id_test", SqlDbType.Int));
sqlCMD.Parameters["@id_test"].Value = dataRow.Isid_testNull() ? DBNull.Value : (object)dataRow.id_test;
Code:
SqlParameter param = new SqlParameter();
param.ParameterName = "@id_test";
param.SqlDbType = SqlDbType.Int;
param.Value = dataRow.Isid_testNull() ? DBNull.Value : (object)dataRow.id_test;
sqlCMD.Parameters.Add(param);
I found nothing on MSDN about the error generated:

[System.InvalidCastException] {"The SqlParameterCollection only accepts non-null SqlParameter type objects, not DBNull objects." }