Hermano muchas gracias por todos tus videos, estoy casi por terminar un proyecto de Compras a Proveedores gracias a ti, sólo que tengo el detalle de que no he podido hacer funcionar un BUSCADOR de Productos de acuerdo al Nombre, ¿Cómo se configura?. Para mi proyecto me basé en tus videos de CRUD con imagen, SQL Server y SP de hace 4 meses.
@@InfoToolsSV Sería de gran ayuda, afortunadamente y con algo de ayuda, encontré que el Procedimiento Almacenado estaba mal redactado. Si a alguien le sirve acá dejo la INFO: CREATE OR ALTER PROCEDURE sp_BNproductos @NombreB NVARCHAR(255) AS BEGIN SELECT * FROM Productos WHERE Nombre LIKE '%'+@NombreB+'%'; END En el controlador: public ActionResult Buscar(string buscar) { using (SqlConnection con = new(Configuration["ConnectionStrings:DefaultConnection"])) { using (SqlCommand cmd = new("sp_BNproductos", con)) //Ejecuta el procedimiento almacenado { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add("@NombreB", SqlDbType.VarChar).Value = buscar; con.Open(); SqlDataAdapter da = new(cmd); //Ejecutar la sentencia DataTable dt = new(); //Crear una tabla da.Fill(dt); da.Dispose(); List lista = new(); for (int i = 0; i < dt.Rows.Count; i++){ lista.Add(new ProductosModel(){ Id_producto = Convert.ToInt32(dt.Rows[i][0]), Nombre = Convert.ToString(dt.Rows[i][1]), Marca = Convert.ToString(dt.Rows[i][2]), });} ViewBag.Productos = lista; con.Close();} return View("Productos"); }}
Tengo diferentes vídeos de cómo programar las funciones CRUD, puedes guiarte con el que gustes dependiendo de las tecnologías que quieras usar. Saludos.
Tengo un problema a la hora de loguearme, dice: La conexión no se cerró. El estado actual de la conexión es abierta. Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Revisa que tu cadena de conexión tenga las propiedades necesarias para tu caso: server=SERVIDOR; database=BASE_DE_DATOS; Trusted_Connection=SSPI; Encrypt=false; TrustServerCertificate=true
Hola estos tutoriales son muy utiles tengo una consulta Si tengo windows 11 home single lenguage, y quiero instalar windows 10, Que windows 10 instalo? 10 home o 10 pro? Version 1903
Depende, ambas ediciones comparten características, sin embargo la edición Pro, tiene características adicionales. Debes instalar la edición que necesites en base a tu uso, te recomiendo ver las diferencias princiapales: www.microsoft.com/es-es/windows/compare-windows-10-home-vs-pro
Hola, para este proyecto no ya que el objetivo solo es el nivel de acceso, sin embargo te comparto este vídeo: ruclips.net/video/lVpToyIQHC4/видео.html donde se realiza la programación de los botones CRUD, la estructura y lógica usada es la misma, por lo que se te hará fácil guiarte. A partir del minuto 34 empieza la programación de los eventos, sin embargo previamente debe crearse un formulario donde se habilitaran los controles para editar. Saludos!
@@InfoToolsSV Agradezco tu respuesta. Lo intenté así como lo mencionas no obtuve buenos resultados ya que estoy iniciando en esto de programación y hay cosas que aún ignoro. Ejm la consulta de sp_datos poder adaptarlo al proyecto de roles para que muestre sólo un registro ya sea para eliminar o actualizar.
Como lo digo en el vídeo, los botones se agregaron de ejemplo para comprobación de los permisos, si se quieren mantener los botones, programarlos es más fácil con las restricciones aplicadas.
Muchas graicas, con respecto a tu consulta, no tengo una continuación, pero con este vídeo: ruclips.net/video/lVpToyIQHC4/видео.html puede completarse el CRUD. Saludos!
En ASP.NET MVC con C#, el control de permisos basado en roles de usuarios junto con el registro y inicio de sesión se puede implementar de varias maneras. Para la autenticación, puedes usar el sistema de autenticación de ASP.NET Identity, que maneja el registro, inicio de sesión y la gestión de usuarios de forma integrada. Para la autorización basada en roles, puedes utilizar atributos de autorización en tus controladores o acciones. Por ejemplo, [Authorize(Roles = "Admin")] restringirá el acceso a los usuarios que tengan el rol "Admin". Para las áreas restringidas, asegúrate de que tus vistas y controladores estén protegidos con la autorización basada en roles. Recuerda que este es un enfoque básico y que hay muchas formas de personalizar y mejorar este sistema según las necesidades específicas de tu aplicación.
@@InfoToolsSV ya los apliqué y sigue sin hacer caso a las restricciones, lo puse en modo de ejecución de línea por línea y pasa que cuando llega al while no entra al switch y se va hasta el final del while foreach(GridViewRow fila in datos.Rows) { while (reader.Read()) { switch (reader[0].ToString()) { case "Crear": Nuevo = Convert.ToBoolean(reader[1].ToString()); if (Nuevo) { btnCreate.Visible = true; } else { btnCreate.Visible = false; } break; case "Modificar": Actualizar = Convert.ToBoolean(reader[1].ToString()); Button btn2 = fila.FindControl("btnUpdate") as Button; if (Actualizar) { btn2.Visible = true; } else { btn2.Visible = false; } break; case "Leer": Leer = Convert.ToBoolean(reader[1].ToString()); Button btn3 = fila.FindControl("btnRead") as Button; if (Leer) { btn3.Visible = true; datos.Visible = true; } else { btn3.Visible = false; datos.Visible = false; } break; case "Eliminar": Eliminar = Convert.ToBoolean(reader[1].ToString()); Button btn4 = fila.FindControl("btnDelete") as Button; if (Eliminar) { btn4.Visible = true; } else { btn4.Visible = false; } break; } } } Ya apliqué las restricciones que mencionó.. pero no se en donde está el error
Estoy en la Utec y tus videos me ayudan a completar mis conocimientos
Excelente video en TODOS los aspectos. Muchas gracias por compartir su gran conocimiento
Gracias por tu comentario, saludos!
Excelente, espero la siguiente parte. Me esta sirviendo para mi proyecto. Buen trabajo :)
Excelente, gracias por tu comentario, saludos!
Excelentes aportes, gracias por compartir tu profesional conocimiento.
Gracias a ti por tu comentario, saludos!
Excelente trabajo!
Muchas gracias!
Hermano muchas gracias por todos tus videos, estoy casi por terminar un proyecto de Compras a Proveedores gracias a ti, sólo que tengo el detalle de que no he podido hacer funcionar un BUSCADOR de Productos de acuerdo al Nombre, ¿Cómo se configura?. Para mi proyecto me basé en tus videos de CRUD con imagen, SQL Server y SP de hace 4 meses.
Hola compa, haré un vídeo esta semana sobre un buscador y espero sirva para tu proyecto.
@@InfoToolsSV Sería de gran ayuda, afortunadamente y con algo de ayuda, encontré que el Procedimiento Almacenado estaba mal redactado. Si a alguien le sirve acá dejo la INFO:
CREATE OR ALTER PROCEDURE sp_BNproductos
@NombreB NVARCHAR(255)
AS
BEGIN
SELECT *
FROM Productos
WHERE Nombre LIKE '%'+@NombreB+'%';
END
En el controlador:
public ActionResult Buscar(string buscar)
{
using (SqlConnection con = new(Configuration["ConnectionStrings:DefaultConnection"]))
{
using (SqlCommand cmd = new("sp_BNproductos", con)) //Ejecuta el procedimiento almacenado
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("@NombreB", SqlDbType.VarChar).Value = buscar;
con.Open();
SqlDataAdapter da = new(cmd); //Ejecutar la sentencia
DataTable dt = new(); //Crear una tabla
da.Fill(dt);
da.Dispose();
List lista = new();
for (int i = 0; i < dt.Rows.Count; i++){
lista.Add(new ProductosModel(){
Id_producto = Convert.ToInt32(dt.Rows[i][0]),
Nombre = Convert.ToString(dt.Rows[i][1]),
Marca = Convert.ToString(dt.Rows[i][2]),
});}
ViewBag.Productos = lista;
con.Close();}
return View("Productos");
}}
Gran video, se podra avanzar con los botones por lo menos uno para saber como realizar esos cambios ?¡?
Tengo varios vídeos sobre cómo programar las funciones CRUD con diferentes tecnologías. Saludos.
Tengo diferentes vídeos de cómo programar las funciones CRUD, puedes guiarte con el que gustes dependiendo de las tecnologías que quieras usar. Saludos.
@@InfoToolsSV tienes alguno que continúe en esta misma tecnología ya que me queda claro el uso pero igual todavía estoy aprendiendo y entendiendo
Tengo un problema a la hora de loguearme, dice: La conexión no se cerró. El estado actual de la conexión es abierta. Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Revisa que tu cadena de conexión tenga las propiedades necesarias para tu caso:
server=SERVIDOR; database=BASE_DE_DATOS; Trusted_Connection=SSPI; Encrypt=false; TrustServerCertificate=true
Hola, si quisiera agregar el login a un CRUD de estudiantes sencillo como lo puedo hacer?
Tengo un vídeo básico de como puedes hacerlo: ruclips.net/video/iOmC2JufnnI/видео.html
Saludos, como controlo que se vean ciertos formulario de acuerdo a el nivel de usuario?. Gracias
Haré un vídeo sobre ese tema, saludos!
Excelente@@InfoToolsSV
Saludos, como va el video
how can you set the background in visual studio code?
I'm using an extension called ClaudiaIDE.
@@InfoToolsSV oh super bro
Como le agregaste esa imagen de background al vs
Con la extensión ClaudiaIDE
Alguien sabe porqué no me funciona el "as begin" ...... "end" ?
Verifica que la estructura del procedimiento sea la correcta.
CREATE PROCEDURE
-- Parametros
AS
BEGIN
-- Procesos a ejecutar
END
Tengo ese error
Falta cerrar un parentesis despues del @clave
Hola estos tutoriales son muy utiles
tengo una consulta
Si tengo windows 11 home single lenguage, y quiero instalar windows 10,
Que windows 10 instalo?
10 home o 10 pro?
Version 1903
Depende, ambas ediciones comparten características, sin embargo la edición Pro, tiene características adicionales. Debes instalar la edición que necesites en base a tu uso, te recomiendo ver las diferencias princiapales:
www.microsoft.com/es-es/windows/compare-windows-10-home-vs-pro
Buen día. Consulta vas a programar los botones update y delete? Me ayudaría bastante. Espero tu respuesta Saludos. 😊
Hola, para este proyecto no ya que el objetivo solo es el nivel de acceso, sin embargo te comparto este vídeo: ruclips.net/video/lVpToyIQHC4/видео.html donde se realiza la programación de los botones CRUD, la estructura y lógica usada es la misma, por lo que se te hará fácil guiarte. A partir del minuto 34 empieza la programación de los eventos, sin embargo previamente debe crearse un formulario donde se habilitaran los controles para editar. Saludos!
@@InfoToolsSV
Agradezco tu respuesta. Lo intenté así como lo mencionas no obtuve buenos resultados ya que estoy iniciando en esto de programación y hay cosas que aún ignoro. Ejm la consulta de sp_datos poder adaptarlo al proyecto de roles para que muestre sólo un registro ya sea para eliminar o actualizar.
😔
En este caso para utilizar los botones del crud Actualizar, leer y Eliminar faltaria la activacion de estos botones
Como lo digo en el vídeo, los botones se agregaron de ejemplo para comprobación de los permisos, si se quieren mantener los botones, programarlos es más fácil con las restricciones aplicadas.
@@InfoToolsSV Vale bro muchas gracias esos los puedo buscar en los videos de aca osea sirven?
Excelente, tendras alguna continuacion a este proyecto?
Muchas graicas, con respecto a tu consulta, no tengo una continuación, pero con este vídeo: ruclips.net/video/lVpToyIQHC4/видео.html puede completarse el CRUD. Saludos!
Excelente, alguien pudo clonarlo? no me funciona a la hora de clonarlo, me pueden ayudar?
Te recomiendo descargar el proyecto y abrir la solución, saludos!
@@InfoToolsSV Si eso hice pero a la hora de registrar un usuario y luego inciar sesion me muestra un error y no se por que
@@saramorales978 Verifica que el patrón de encriptación sea el mismo al registrar como al iniciar sesión.
...Y este ejemplo para MVC ??
En ASP.NET MVC con C#, el control de permisos basado en roles de usuarios junto con el registro y inicio de sesión se puede implementar de varias maneras.
Para la autenticación, puedes usar el sistema de autenticación de ASP.NET Identity, que maneja el registro, inicio de sesión y la gestión de usuarios de forma integrada.
Para la autorización basada en roles, puedes utilizar atributos de autorización en tus controladores o acciones. Por ejemplo, [Authorize(Roles = "Admin")] restringirá el acceso a los usuarios que tengan el rol "Admin".
Para las áreas restringidas, asegúrate de que tus vistas y controladores estén protegidos con la autorización basada en roles.
Recuerda que este es un enfoque básico y que hay muchas formas de personalizar y mejorar este sistema según las necesidades específicas de tu aplicación.
tengo un problema con las restricciones.. las restricciones ignoran las condiciones y se siguen mostrando
void Permisos(int Idrol)
{
try
{
SqlCommand cmd = new SqlCommand("sp_permisos", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@IdRol", SqlDbType.Int).Value = Idrol;
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
bool Crear, Leer, Modificar, Eliminar;
foreach(GridViewRow fila in datos.Rows)
{
while (reader.Read())
{
switch (reader[0].ToString())
{
case "Crear":
Crear = Convert.ToBoolean(reader[1].ToString());
if (Crear)
{
btnCreate.Visible = true;
}
else
{
btnCreate.Visible = false;
}
break;
case "Modificar":
Modificar = Convert.ToBoolean(reader[1].ToString());
Button btn2 = fila.FindControl("btnUpdate") as Button;
if (Modificar)
{
btn2.Visible = true;
}
else
{
btn2.Visible = false;
}
break;
case "Leer":
Leer = Convert.ToBoolean(reader[1].ToString());
Button btn3 = fila.FindControl("btnRead") as Button;
if (Leer)
{
btn3.Visible = true;
datos.Visible = true;
}
else
{
btn3.Visible = false;
datos.Visible = false;
}
break;
case "Eliminar":
Eliminar = Convert.ToBoolean(reader[1].ToString());
Button btn4 = fila.FindControl("btnDelete") as Button;
if (Eliminar)
{
btn4.Visible = true;
}
else
{
btn4.Visible = false;
}
break;
}
}
}
con.Close();
reader.Close();
}
catch (Exception)
{
throw;
}
}
============================================================================================
ALTER procedure [dbo].[sp_permisos]
(
@IdRol int
)
as
begin
select Nombre, Estado from RolesPermisos inner join Permisos on Permisos.IdPermiso = RolesPermisos.IdPermiso where IdRol = @IdRol
end
==================================
este es el código.. ayudaaaaaa
Te falta aplicar los permisos en la estructura switch.
@@InfoToolsSV ya los apliqué y sigue sin hacer caso a las restricciones, lo puse en modo de ejecución de línea por línea y pasa que cuando llega al while no entra al switch y se va hasta el final del while
foreach(GridViewRow fila in datos.Rows)
{
while (reader.Read())
{
switch (reader[0].ToString())
{
case "Crear":
Nuevo = Convert.ToBoolean(reader[1].ToString());
if (Nuevo)
{
btnCreate.Visible = true;
}
else
{
btnCreate.Visible = false;
}
break;
case "Modificar":
Actualizar = Convert.ToBoolean(reader[1].ToString());
Button btn2 = fila.FindControl("btnUpdate") as Button;
if (Actualizar)
{
btn2.Visible = true;
}
else
{
btn2.Visible = false;
}
break;
case "Leer":
Leer = Convert.ToBoolean(reader[1].ToString());
Button btn3 = fila.FindControl("btnRead") as Button;
if (Leer)
{
btn3.Visible = true;
datos.Visible = true;
}
else
{
btn3.Visible = false;
datos.Visible = false;
}
break;
case "Eliminar":
Eliminar = Convert.ToBoolean(reader[1].ToString());
Button btn4 = fila.FindControl("btnDelete") as Button;
if (Eliminar)
{
btn4.Visible = true;
}
else
{
btn4.Visible = false;
}
break;
}
}
}
Ya apliqué las restricciones que mencionó.. pero no se en donde está el error
¿Este código se puede desarrollar en Visual Studio 2012?
Claro que sí, siempre y cuando tengas las tecnologías instaladas la versión del IDE no debe ser un problema.
Es un poco difícil prestarle atención al proyecto con tremenda wapura de fondo xD