本帖最后由 宋兴征 于 2013-4-10 14:44 编辑
- <div class="blockcode"><blockquote> private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
- {
- if (conn.State != ConnectionState.Open)
- conn.Open();
- cmd.Connection = conn;
- cmd.CommandText = cmdText;
- if (trans != null)
- cmd.Transaction = trans;
- cmd.CommandType = CommandType.Text;//cmdType;
- 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);
- }
- }
- }
复制代码 ParameterDirection是一个枚举类型,值有:// 摘要: // 参数是输入参数。 Input = 1, // // 摘要: // 参数是输出参数。 Output = 2, // // 摘要: // 参数既能输入,也能输出。 InputOutput = 3, // // 摘要: // 参数表示诸如存储过程、内置函数或用户定义函数之类的操作的返回值。 ReturnValue = 6,
请问,- if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
- (parameter.Value == null))
- {
- parameter.Value = DBNull.Value;
- }
复制代码 该怎么理解?是什么意思? 为什么要设参数为DBNull.Value?
|