空数据时间值

时间:2015-04-09 02:06:10

标签: c# sql asp.net

您好我试图保存日期时间的空值(fechaNac),但我不能这样做。是否可以在asp中使用我的通用代码呢?

public int add(Cliente dato)
        {
            string cmdText = "insert into clientes values ( @nombre, @apellido,@telefono,@celular,@oldtelefono, @oldcelular, @dni , @fechaNac)";
            Dictionary<string, Object> parametros = new Dictionary<string, Object>();
            parametros.Add("@nombre", dato.Nombre);
            parametros.Add("@apellido", dato.Apellido);
            parametros.Add("@telefono", dato.Telefono);
            parametros.Add("@celular", dato.Celular);
            parametros.Add("@oldtelefono", dato.OldTelefono);
            parametros.Add("@oldcelular", dato.OldCelular);
            parametros.Add("@dni", dato.Dni);
            parametros.Add("@fechaNac", dato.FechaNac);
            try
            {
                return this.setData(cmdText, parametros);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo insertar el usuario en la base de datos", ex);
            }
        }


        public int setData(string cmdText, Dictionary<string, Object> listaParametros)
    {
        int res;
        using (SqlCommand cmd = new SqlCommand(cmdText, cn)) {
            foreach (KeyValuePair<string, Object> parametro in listaParametros) {
                cmd.Parameters.AddWithValue(parametro.Key, parametro.Value);
            }
            Conectar();
            try {
                res = cmd.ExecuteNonQuery();
            } catch (Exception ex) {
                throw new Exception("No se pudo insertar el dato", ex);
            } finally {
                Desconectar();
            }
        }
        return res;
    }

提前感谢您的帮助! 亚尼纳

1 个答案:

答案 0 :(得分:0)

是的,但您需要先将其合并到DBNull.Value

cmd.Parameters.AddWithValue(parametro.Key, parametro.Value ?? DBNull.Value);