C sharp - Campo Booleano recibe un True en el Modelo y almacena Null en la Tabla

 
Vista:
Imágen de perfil de Franklyn
Val: 22
Ha aumentado 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Campo Booleano recibe un True en el Modelo y almacena Null en la Tabla

Publicado por Franklyn (8 intervenciones) el 29/10/2018 15:17:15
Saludos. Estoy enviando parámetros a una Tabla desde ASP.net y C#.
Todos se almacenan sin novedad en la tabla AHD_Solicitudes, a excepción de una columna Booleana (Status_Solicitud), la cual le asigno un valor True desde el código y termina almacenando un valor NULL.

Cabe destacar que hice un modulo para guardar Casos y en la columna 'Status_Caso' si logro almacenar un valor True (o 1 a efectos de SQL Server)

A continuación parte del código y parte del Script de DB:

[MODELO Casos]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/**Sale bien**/
    public partial class AHD_Casos
    {
        /**/
        public AHD_Casos createCasosModel(AHD_Casos model)
        {
            var vCasos = new AHD_Casos();
            try
            {
                using (var vContext = new Models.AuroraHDEntities())
                {
                    vContext.Entry(model).State = EntityState.Added;
                    vContext.SaveChanges();
                }
            }
 
            catch (DbEntityValidationException e)
            {
 
                foreach (var entityValidationErrors in e.EntityValidationErrors)
                {
                    foreach (var validationError in entityValidationErrors.ValidationErrors)
                    {
                        Console.Write("Property: " + validationError.PropertyName + " Error: " + validationError.ErrorMessage);
                        Console.WriteLine(e);
                        throw new Exception(e.Message);
                    }
                }
            }
            return vCasos;
        }
 
        [Key]
        [NotMapped]/**/
        public int Codigo_Caso { get; set; }
 
        [DataType(DataType.Text)]
        public String Serial_Caso { get; set; }
 
        [Required(ErrorMessage = "El campo [Diagnostico del Caso] es obligatorio.")]
        [Display(Name = "Diagnostico del Caso")]
        [DataType(DataType.Text)]
        public string Diagnostico_Caso { get; set; }
 
        [Required(ErrorMessage = "La [Prioriad del Caso] es obligatoria.")]
        [Display(Name = "Prioriad del Caso")]
        [DataType(DataType.Text)]
        public string Prioridad_Caso { get; set; }
 
        public bool Status_Caso { get; set; }
 
        public string Solucion_Caso { get; set; }
 
        [Required(ErrorMessage = "La [Fecha de Creación del Caso] es obligatoria.")]
        [Display(Name = "Fecha de Creación del Caso")]
        [DataType(DataType.DateTime)]
        public System.DateTime Fecha_Creacion_INS { get; set; }
 
        public Nullable<System.DateTime>  Fecha_Atencion { get; set; }
 
        public Nullable<System.DateTime> Fecha_UPD { get; set; }
 
        public Nullable<System.DateTime> Fecha_Solucion { get; set; }
 
        [ForeignKey("Codigo_Empleado")]
        [Required(ErrorMessage = "El [Empleado] es obligatorio.")]
        [Display(Name = "Empleado Asignado")]
        public Nullable<int> Codigo_Empleado { get; set; }
 
        [ForeignKey("Codigo_Solicitud")]
        public Nullable<int> Codigo_Solicitud { get; set; }
 
        public virtual AHD_Empleados AHD_Empleados { get; set; }
        public virtual AHD_Solicitudes AHD_Solicitudes { get; set; }
        public virtual ICollection<AHD_Configuraciones> AHD_Configuraciones { get; set; }
    }


[MODELO Solicitud]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**Sale mal**/
    public partial class AHD_Solicitudes : System.Collections.IEnumerable
    {
        public System.Collections.IEnumerator GetEnumerator() { throw new NotImplementedException(); }
 
        /**/
            public AHD_Solicitudes createSoliciModel(AHD_Solicitudes model)
            {
            var vSolici = new AHD_Solicitudes();
            try
            {
                using (var vContext = new Models.AuroraHDEntities())
                {
                    vContext.Entry(model).State = EntityState.Added;
                    vContext.SaveChanges();
                }
           }
           catch (Exception e) { throw new Exception(e.Message); }
           return vSolici;
       }
 
        /**/
        [Key]
        public int Codigo_Solicitud { get; set; }
 
        [Display(Name = "Serial de la Solicitud")]
        public string Serial_Solicitud { get; set; }
 
        [Required(ErrorMessage = "El campo Descripción de la Solicitud es obligatorio.")]
        [Display(Name = "Descripción de la Solicitud")]
        public string Descripcion_Solicitud { get; set; }
 
        [Required(ErrorMessage = "La Fecha de Creación de la Solicitud es obligatoria.")]
        [Display(Name = "Fecha de Creación de la Solicitud")]
        public Nullable<System.DateTime> Fecha_INS { get; set; }
 
        public Nullable<System.DateTime> Fecha_UPD { get; set; }
 
        public string Usuario_INS { get; set; }
 
        public string Usuario_UPD { get; set; }
 
        public Nullable<int> Codigo_Usuario { get; set; }
 
        [Required(ErrorMessage = "El Departamento Solicitante es obligatorio.")]
        [Display(Name = "Departamento Solicitante")]
        public Nullable<int> Codigo_Departamento { get; set; }
 
        public bool Status_Solicitud { get; set; }
 
        public virtual AHD_Casos AHD_Casos { get; set; }
        public virtual AHD_Departamentos AHD_Departamentos { get; set; }
        public virtual AHD_Usuarios AHD_Usuarios { get; set; }
    }


[CONTROLADOR]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* Sale mal */
[HttpPost]
        public ActionResult createSoliciView(AHD_Solicitudes model) {
            try {
                var vParseCodigo_Usuario = 0;
 
                var vSerial_SoliciMax2 = (db.AHD_Solicitudes.Select(x => x.Codigo_Solicitud).Max())+1;
                model.Serial_Solicitud = "S" + vSerial_SoliciMax2;
                model.Fecha_INS = DateTime.Now;
                model.Usuario_INS = string.Join(" ", @Session["UserName"]);
                model.Usuario_UPD = "";
                vParseCodigo_Usuario = Convert.ToInt32(@Session["UserID"]);
                model.Codigo_Usuario = vParseCodigo_Usuario;
                List<AHD_Departamentos> listadepart = db.AHD_Departamentos.ToList();
                ViewBag.ListOfDepartmentos = new SelectList(listadepart, "Codigo_Departamento", "Nombre_Departamento");
                model.Status_Solicitud = true;
            }
            catch(DbEntityValidationException ex) {}
            if (ModelState.IsValid)
            {
                try {
                    db.Entry(model).State = EntityState.Added;
                    db.SaveChanges();
                }
                catch (DbEntityValidationException e) { Console.WriteLine(e); }
                ModelState.Clear();
                return View();
            }
            else {
                return View("~/Views/Home/createSoliciView.cshtml",model);
            }
        }
 
/* Sale bien */
        [HttpPost]
        public ActionResult createCasosView(AHD_Casos model)
        {
            try
            {
                var vSerial_SoliciMax2 = db.AHD_Solicitudes.Select(x => x.Codigo_Solicitud).Max();//CORRGIR = Debe ser el acual no el mayor
                var vSerial_CasoMax =  ((db.AHD_Casos.Select(x => x.Codigo_Caso).Max())+1);
                model.Serial_Caso = "C" + vSerial_CasoMax + "S" + vSerial_SoliciMax2;
 
                ViewBag.vSerial_Solicitud = model.Serial_Caso;
 
                model.Status_Caso = true;
 
                model.Fecha_Creacion_INS = Convert.ToDateTime(DateTime.Now);
                model.Codigo_Empleado = db.AHD_Empleados.Select(x => x.Codigo_Empleado).Max();
 
                List<AHD_Empleados> listaemplea = db.AHD_Empleados.ToList();
                ViewBag.ListOfEmpleados = new SelectList(listaemplea, "Codigo_Empleado", "Nombre_Empleado");
 
                int vCodigo_CasoMax = ((db.AHD_Casos.Select(x => x.Codigo_Caso).Max()));
                model.Codigo_Caso = Convert.ToInt32(vCodigo_CasoMax);
            }
            catch (DbEntityValidationException ex)
            {
            }
            if (ModelState.IsValid)
            {
                try
                {
                    vCasos.createCasosModel(model);
                }
                catch (DbEntityValidationException e) { Console.WriteLine(e); }
                ModelState.Clear();
                return View();
            }
            else
            {
                return View("~/Views/Home/createCasosView.cshtml", model);
            }
        }

[Scripts DB]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
CREATE TABLE [dbo].[AHD_Casos](
	[Codigo_Caso] [int] IDENTITY(1,1) NOT NULL,
	[Serial_Caso] [char](20) NULL,
	[Diagnostico_Caso] [nvarchar](100) NULL,
	[Prioridad_Caso] [char](10) NULL,
	[Status_Caso] [bit] NULL,
	[Solucion_Caso] [nvarchar](1000) NULL,
	[Fecha_Creacion_INS] [datetime] NULL,
	[Fecha_Atencion] [datetime] NULL,
	[Fecha_UPD] [datetime] NULL,
	[Fecha_Solucion] [datetime] NULL,
	[Codigo_Empleado] [int] NULL CONSTRAINT [DF__AHD_Casos__Codig__108B795B]  DEFAULT ((1)),
	[Codigo_Solicitud] [int] NULL CONSTRAINT [DF__AHD_Casos__Codig__117F9D94]  DEFAULT ((1)),
 CONSTRAINT [PK__AHD_Caso__8474B8972AE5F8DD] PRIMARY KEY CLUSTERED
(
	[Codigo_Caso] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
 
CREATE TABLE [dbo].[AHD_Solicitudes](
	[Codigo_Solicitud] [int] IDENTITY(1,1) NOT NULL,
	[Serial_Solicitud] [char](10) NULL,
	[Descripcion_Solicitud] [nvarchar](1000) NULL,
	[Fecha_INS] [datetime] NULL,
	[Fecha_UPD] [datetime] NULL,
	[Usuario_INS] [nvarchar](50) NULL,
	[Usuario_UPD] [nvarchar](50) NULL,
	[Codigo_Usuario] [int] NULL,
	[Codigo_Departamento] [int] NULL,
	[Status_Solicitud] [bit] NULL,
 CONSTRAINT [PK_AHD_Solicitudes] PRIMARY KEY CLUSTERED
(
	[Codigo_Solicitud] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Cabe destacar que en los puntos de interrupción aparecen los parametros booleanos con valor true:

casosError
casosErrorDB
solicitudError
solicitudErrorDB

Ademas, he creado un a tabla de prueba definiendo dicha columna Booleana como NOT NULL y a la hora de registrar en dicha tabla genera error...
1
SqlException: No se puede insertar el valor NULL en la columna 'Status_Solicitud', tabla 'AuroraHD5.dbo.AHD_Solicitudes'. La columna no admite valores NULL. Error de INSERT.

Por favor, quisiera saber porque si en el punto de interrupción se recibe True en un parámetro, se almacena Null en la en su respectivo registro tabla. No le veo sentido.
Ademas que ya tengo un modulo similar y si logra almacenar true en el campo booleano.
Por favor, si alguien me puede ayudar a solventar esta situación o donde estaría la falla...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de milton
Val: 43
Ha aumentado 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Campo Booleano recibe un True en el Modelo y almacena Null en la Tabla

Publicado por milton (14 intervenciones) el 17/11/2018 17:34:46
Simple aqui declaras por defecto 1(true);
[Codigo_Solicitud] [int] NULL CONSTRAINT [DF__AHD_Casos__Codig__117F9D94] DEFAULT ((1))



en cambio en esta dices null

[Status_Solicitud] [bit] NULL,


saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Franklyn
Val: 22
Ha aumentado 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Campo Booleano recibe un True en el Modelo y almacena Null en la Tabla

Publicado por Franklyn (8 intervenciones) el 20/11/2018 13:26:39
listo, solventado milton. Agradecido....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar