日期:2014-05-20  浏览次数:20396 次

请问一段代码是什么意思
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 的例子