private static void PrepareCommand(SqlCommand cmd,SqlConnection conn,string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = CommandType.Text;
if (cmdParms != null)
{
foreach (SqlParameter parameter in cmdParms)
{
if ( ( parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input ) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
}
}
}
不明白这段代码中的:
if ( ( parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input ) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
是什么意思?加上这个有什么用处?
------解决方案--------------------------------------------------------
如果这个参数是可以输入或可以输入的`而且它为空。。不同于数据库的NULL值。。就赋值为数据库的NULL`
------解决方案--------------------------------------------------------
是数据库里的null值
在C#里打印即不是null也不是 " "
------解决方案--------------------------------------------------------
sqlCommand.Parameters[ "@c "].Value = DBNull.Value;
完整的看看 MSDN
SqlCommand 的例子