Si te ha gustado el video puedes apoyarme dándole Like y también compartiendo el video en tus redes sociales, eso me ayuda bastante para ir creciendo y hacer material con más calidad.
Es la "n" ocasión que regreso a ver este video, tiene varias cosas que me están siendo de mucha ayuda, todo muy claro y gran información. Muchas Gracias Hector.
Excelente vídeo, precisamente debo hacer esto en un sistema pero con Mysql me toca checar los procedimientos almacenados, me ayudo bastante. Muchas Gracias.
Estimado, excelente video. Podrías hacer uno que tenga esta funcionalidad: 1. Un formulario primario con un grid vacio y un boton agregar. 2. Un formulario secundario con un grid con datos y un boton aceptar. 3. Al hacer click en el boton agregar del formulario primario se abrira el formulario secundario. 4. En el formulario secundario se selecciona una fila con datos y al hacer clic en el boton aceptar la ventana se cierra. 5. El formulario primario RECIBE los datos seleccionados del formulario secundario y los inserta en el grid vacio. He buscado como hacer esta funcionalidad y no la encuentro por ningún lado. Sería de gran ayuda un video. Saludos y éxitos.
hola Hector excelente video como todos, interesante lo de type, alguna vez pensaba en como enviar desde C# algo asi como una entidad a través del sp, pero no sabia que habia el type, yo siempre enviaba uno a uno los los parametros del detalle, y siempre lo hacia en dos sp, gracias de nuevo por compartir tus conocimientos.
Lo máximo, gracias por compartir conocimiento y la forma de explicar muy claro. Saludos
3 ปีที่แล้ว
Excelente video, el contenido muy adecuado asi como la forma de realizarlo, ya cada quien que le ponga su toque de SOLID, pero la idea y la formad e llevarlo a acabo excelente para nuestros proyectos!
Gracias estimado colega por este magnifico tutorial. Me pregunto si esta en tus planes el ofrecer a esta comunidad de entusiastas de la programacion en c# una seria de tutoriales de un sistema completo con varias tablas, stored procedures,sql, c sharp, reportes ...seria fantastico. De nuevo gracias por tu contribucion, eres un bacano!
Muy buen video Hector, muy interesante, lo que te falto es como eliminar el registro de la base de datos, no se si lo puedes complementar con un video adicional. Gracias!!!
Esto es simple, un procedimiento almacenado para eliminar, seleccionas la venta, y mandas el id de la venta, y en el procedimiento almacenado le das eliminar todos los detalles que tengan un id de venta que sea igual al que mandas, y en venta igual, debe ser en ese orden, primero el detalle y luego la venta. Creo que el video lleva otra finalidad, y es la de mezclar la funcionalidad en un solo procedimiento, porque muchos programadores suelen usar 2, lo que puede hacer un poco mas dificil el control de la ejecucion con una transaccion por ejemplo.
Gracias, muy bien explicado, ya tienes un suscrito más. Ahora solo falta que nos expliques como se edita.
3 ปีที่แล้ว
Puedes hacer uso del evento CellDoubleClick y guardar el RowIndex en una variable global inicalizada en -1 por ejemplo, capturar los datos cantidad, nombre y precio de ese RowIndex y colocarlo cada uno en el TextBox, modificar el evento del boton + para que valide si esa variable es 0 o mayor entonces que borre esa fila del dgv y la vuelves a agregar y estableces esa variable global o de control en -1, para que cuando sea -1, el evento del boton + agregue los datos de los textbox en una fila dentro del dgv, esta seria una posible solucion, no se si la mas elegante y eficiente, pero podria funcionar sin mayor problema, lo mejor es hacerla poara verificar que puntos se puede mejorar y dejar algo bien hechop para editar yna fila ya agregada al dgv. En la bd no se deberia actualizar nada por que de momento no esta obteniendo las ventas y sus conceptos, ya eso es otro form completamente nuevo para irle agregando toda es nueva funcionalidad.
Muy buen video, no se si tuvieras un video con procedimientos almacenados y tabla relacionada, pero con ejemplos del uso de distintos tipos de datos de sql server, por ejemplo uso del bit, para cambiar de activo o no un usuario.
Buen día Hdeleon, podrías hacer un ejemplo de los procedimientos en Entityframework? por favor haznos ese gran favor somos varios los que que esperamos ese vídeo por favor
Hola, en el sp cuando insertas la lista en la tabla detalle(concepto) por que no se defines el IDConcepto para que se agregue, por que de lo contrario lo tomaría como nulo, en la tabla concepto, saludos
Como siempre, Chulada de video. Sólo una pequeña pregunta. ¿Recomiendas hacer esto con Entity o consideras que le pegaría mucho al rendimiento de la aplicación?
Un maestro con id auto incrementable es lógico porque puede crecer enormemente según la data a ingresar por eso es bueno el bigint, pero un maestro puede tener muchos detalles, entonces no es lógico dejar el id como int ya que este crecería mas que el id del maestro. SOlo digo eh.
Que tal hector, una pregunta..¿como puedo editar o eliminar un registro de detalle una vez que ya tengo guardada la información en base de datos?..ó ¿tendría que eliminar el registro y volver a guardarlos cada vez que pase una modificación?
Hola Licenciado, muy buena la explicacion, me gustaria saber si puedes ayudarme con un video o enviarme una explicación de como hacer Formulario Maestro Detalle utilizando C# .Net Windows Forms con web services ya que me dejaron como prueba a realizar para poder tener un posibilidad de una trabajo en estos tiempos de pandemia. Podrias darme una manita o sugerirme donde puedo encontrar esa clase de info. Gracias soy seguidor de tus explicaciones me han ayudado mucho a mejorar como desarrollador.
Hola Hdeleon, realice el ejercicio Formulario Maestro Detalle utilizando C# .Net Windows Forms con procedimientos almacenados. Y marca este error. command.Parameters.AddWithValue(@cliente, Cliente); El nombre 'cliente' no existe en el contexto actual.
Hector, he estado haciendo el ejemplo que planteas, pero tengo un problema "conversion failed when converting date and/or time from character string the data for table-value parameter @Cursos doesnot conform to the table type of the parameter SQL server error is:241 state:1 the statement has been terminated"
No me funciono la conexión a la base de datos, me aparece el siguiente mensaje "La conexión con el servidor se ha establecido correctamente, pero se ha producido un error durante el proceso de inicio de sesión. (provider: Shared Memory Provider, error: 0 - No hay ningún proceso en el otro extremo de la canalización.)". Tengo otro proyecto que utiliza "Microsoft.Data.SqlClient" como provider y si me funciona correctamente, alguna idea de porque no me funciona al guardar?
fiera tus videos, una consulta y si es posible que puedan colaborar todos, en el codigo agrege la transaccion me gustaria saber si esta bien echa o que le haria falta para que se ejecute todo o nada. saludos using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlTransaction transaction = connection.BeginTransaction()) { SqlCommand command = new SqlCommand("spGuardaVenta", connection); var parametroLista = new SqlParameter("@lstConceptos", SqlDbType.Structured); parametroLista.TypeName = "dbo.Detail"; parametroLista.Value = dt; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(parametroLista); command.Parameters.AddWithValue("@cliente", Cliente); command.Connection = connection; command.Transaction = transaction; try { command.ExecuteNonQuery(); transaction.Commit(); connection.Close(); } catch (Exception ex) { transaction.Rollback(); throw; } }
agrege un campo fecha en la tabla concepto tipo datetime de igual forma lo hice en el procedimento almacenado en el insert y el select (insert into concepto(cantidad,nombre,precio,fechas, id_venta) select cantidad,nombre,precio,fechas,@idVenta from @lstConceptos) y lo agregue en el type table como fecha datetime pero cuando ejecuto la aplicacion y desde el console muestra: System.Data.SqlClient.SqlException: Error al convertir una cadena de caracteres en fecha y/u hora. Los datos para el parámetro con valores de tabla '@lstConceptos' no se ajustan al tipo de tabla del parámetro. alguien pueda hecharme una mano gracias
Si te ha gustado el video puedes apoyarme dándole Like y también compartiendo el video en tus redes sociales, eso me ayuda bastante para ir creciendo y hacer material con más calidad.
nel vato no le doy layk, ok, si le doy.
Es la "n" ocasión que regreso a ver este video, tiene varias cosas que me están siendo de mucha ayuda, todo muy claro y gran información. Muchas Gracias Hector.
Calidad de video Hector! De lujo!
Excelente vídeo, precisamente debo hacer esto en un sistema pero con Mysql me toca checar los procedimientos almacenados, me ayudo bastante. Muchas Gracias.
Estimado, excelente video. Podrías hacer uno que tenga esta funcionalidad:
1. Un formulario primario con un grid vacio y un boton agregar.
2. Un formulario secundario con un grid con datos y un boton aceptar.
3. Al hacer click en el boton agregar del formulario primario se abrira el formulario secundario.
4. En el formulario secundario se selecciona una fila con datos y al hacer clic en el boton aceptar la ventana se cierra.
5. El formulario primario RECIBE los datos seleccionados del formulario secundario y los inserta en el grid vacio.
He buscado como hacer esta funcionalidad y no la encuentro por ningún lado. Sería de gran ayuda un video. Saludos y éxitos.
hola Hector excelente video como todos, interesante lo de type, alguna vez pensaba en como enviar desde C# algo asi como una entidad a través del sp, pero no sabia que habia el type, yo siempre enviaba uno a uno los los parametros del detalle, y siempre lo hacia en dos sp, gracias de nuevo por compartir tus conocimientos.
me pregunto, te pregunto Hector... funcionara esta misma estructura type para hacerlo mapeando los sp con entity framework
Buen video Hector. No sabía lo de los types en sql, muy interesante.
Lo máximo, gracias por compartir conocimiento y la forma de explicar muy claro. Saludos
Excelente video, el contenido muy adecuado asi como la forma de realizarlo, ya cada quien que le ponga su toque de SOLID, pero la idea y la formad e llevarlo a acabo excelente para nuestros proyectos!
Gracias estimado colega por este magnifico tutorial. Me pregunto si esta en tus planes el ofrecer a esta comunidad de entusiastas de la programacion en c# una seria de tutoriales de un sistema completo con varias tablas, stored procedures,sql, c sharp, reportes ...seria fantastico. De nuevo gracias por tu contribucion, eres un bacano!
Muy buen video Hector, muy interesante, lo que te falto es como eliminar el registro de la base de datos, no se si lo puedes complementar con un video adicional. Gracias!!!
Esto es simple, un procedimiento almacenado para eliminar, seleccionas la venta, y mandas el id de la venta, y en el procedimiento almacenado le das eliminar todos los detalles que tengan un id de venta que sea igual al que mandas, y en venta igual, debe ser en ese orden, primero el detalle y luego la venta.
Creo que el video lleva otra finalidad, y es la de mezclar la funcionalidad en un solo procedimiento, porque muchos programadores suelen usar 2, lo que puede hacer un poco mas dificil el control de la ejecucion con una transaccion por ejemplo.
Gracias, muy bien explicado, ya tienes un suscrito más. Ahora solo falta que nos expliques como se edita.
Puedes hacer uso del evento CellDoubleClick y guardar el RowIndex en una variable global inicalizada en -1 por ejemplo, capturar los datos cantidad, nombre y precio de ese RowIndex y colocarlo cada uno en el TextBox, modificar el evento del boton + para que valide si esa variable es 0 o mayor entonces que borre esa fila del dgv y la vuelves a agregar y estableces esa variable global o de control en -1, para que cuando sea -1, el evento del boton + agregue los datos de los textbox en una fila dentro del dgv, esta seria una posible solucion, no se si la mas elegante y eficiente, pero podria funcionar sin mayor problema, lo mejor es hacerla poara verificar que puntos se puede mejorar y dejar algo bien hechop para editar yna fila ya agregada al dgv.
En la bd no se deberia actualizar nada por que de momento no esta obteniendo las ventas y sus conceptos, ya eso es otro form completamente nuevo para irle agregando toda es nueva funcionalidad.
Gracias, muy buen video. Una pregunta mi estimado para realizar el editar del detalle, como sería el update en el procedimiento almacenado?
Muy buen video, no se si tuvieras un video con procedimientos almacenados y tabla relacionada, pero con ejemplos del uso de distintos tipos de datos de sql server, por ejemplo uso del bit, para cambiar de activo o no un usuario.
Excelente aporte Hector
Excelente aporte.
Gran video Crack.
Muchas gracias!
quisiera saber si tienes algun video de Formulario Maestro Detalle utilizando C# .Net Web Forms con procedimientos almacenados
Seria interesante que haga un crud con esto mismo
Buen día Hdeleon, podrías hacer un ejemplo de los procedimientos en Entityframework? por favor haznos ese gran favor somos varios los que que esperamos ese vídeo por favor
th-cam.com/video/rNROUK5ddFc/w-d-xo.html
@@hdeleonnet muy amable, gracias
Me gustaría ver un vídeo donde se pudiera mostrar filas hijo de una fila seleccionada, en un datagridview. Siempre he querido enseñarme ha hacer eso.
Hola, en el sp cuando insertas la lista en la tabla detalle(concepto) por que no se defines el IDConcepto para que se agregue, por que de lo contrario lo tomaría como nulo, en la tabla concepto, saludos
Buen día Hdeleon, podrías hacer un ejemplo de los procedimientos en Entityframework?
th-cam.com/video/rNROUK5ddFc/w-d-xo.html
Por favor, también me gustaría pedirte que hagas ese vídeo por favor
th-cam.com/video/rNROUK5ddFc/w-d-xo.html
Como siempre, Chulada de video.
Sólo una pequeña pregunta. ¿Recomiendas hacer esto con Entity o consideras que le pegaría mucho al rendimiento de la aplicación?
Si tienes 1000 usuarios en un solo server en este modulo en los mismos 5 min si. Sino no hay bronca si utilizas entity.
@@hdeleonnet Muchas gracias!
Un maestro con id auto incrementable es lógico porque puede crecer enormemente según la data a ingresar por eso es bueno el bigint, pero un maestro puede tener muchos detalles, entonces no es lógico dejar el id como int ya que este crecería mas que el id del maestro. SOlo digo eh.
Que tal hector, una pregunta..¿como puedo editar o eliminar un registro de detalle una vez que ya tengo guardada la información en base de datos?..ó ¿tendría que eliminar el registro y volver a guardarlos cada vez que pase una modificación?
Hola, una pregunta, como recibo una lista en Mysql?? por favor.
Hola Licenciado, muy buena la explicacion, me gustaria saber si puedes ayudarme con un video o enviarme una explicación de como hacer Formulario Maestro Detalle utilizando C# .Net Windows Forms con web services ya que me dejaron como prueba a realizar para poder tener un posibilidad de una trabajo en estos tiempos de pandemia. Podrias darme una manita o sugerirme donde puedo encontrar esa clase de info. Gracias soy seguidor de tus explicaciones me han ayudado mucho a mejorar como desarrollador.
Buscando trabajo ,te hacen una prueba y en tu tiempo restante para entregar la prueba pides ayuda a los youtubers? entonces, aún no estás apto.
Hola bro, a la hora que doy en el boton de guardar me sale "Error de inicio de sesión del usuario 'sa'. ¿Por qué ocurre esto?
Donde obtengo el codigo fuente ?, gracias
Los conceptos son los detalles de la venta o que rollo? Buen vídeo vato
Los conceptos son los productos o detalle asi es.
Hola Hdeleon, realice el ejercicio Formulario Maestro Detalle utilizando C# .Net Windows Forms con procedimientos almacenados. Y marca este error.
command.Parameters.AddWithValue(@cliente, Cliente);
El nombre 'cliente' no existe en el contexto actual.
Hector, he estado haciendo el ejemplo que planteas, pero tengo un problema "conversion failed when converting date and/or time from character string
the data for table-value parameter @Cursos doesnot conform to the table type of the parameter
SQL server error is:241 state:1 the statement has been terminated"
No me funciono la conexión a la base de datos, me aparece el siguiente mensaje "La conexión con el servidor se ha establecido correctamente, pero se ha producido un error durante el proceso de inicio de sesión. (provider: Shared Memory Provider, error: 0 - No hay ningún proceso en el otro extremo de la canalización.)". Tengo otro proyecto que utiliza "Microsoft.Data.SqlClient" como provider y si me funciona correctamente, alguna idea de porque no me funciona al guardar?
ya lo solucione, solo era por el tipo de usuario de sql server, configure el usuario sa, y ya me funciono
38:54 Por que es necesario abrir y cerrar la conexion si segun entiendo esta el using para abrir y cerrar la conexion automaticamente?
Using no sirve para abrir o cerrar conexión. Sirve para crear hambito.
por que parse y no convertto?
fiera tus videos, una consulta y si es posible que puedan colaborar todos, en el codigo agrege la transaccion me gustaria saber si esta bien echa o que le haria falta para que se ejecute todo o nada. saludos
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlTransaction transaction = connection.BeginTransaction())
{
SqlCommand command = new SqlCommand("spGuardaVenta", connection);
var parametroLista = new SqlParameter("@lstConceptos", SqlDbType.Structured);
parametroLista.TypeName = "dbo.Detail";
parametroLista.Value = dt;
command.CommandType = System.Data.CommandType.StoredProcedure;
command.Parameters.Add(parametroLista);
command.Parameters.AddWithValue("@cliente", Cliente);
command.Connection = connection;
command.Transaction = transaction;
try
{
command.ExecuteNonQuery();
transaction.Commit();
connection.Close();
}
catch (Exception ex)
{
transaction.Rollback();
throw;
}
}
}
agrege un campo fecha en la tabla concepto tipo datetime de igual forma lo hice en el procedimento almacenado en el insert y el select (insert into concepto(cantidad,nombre,precio,fechas, id_venta)
select cantidad,nombre,precio,fechas,@idVenta from @lstConceptos) y lo agregue en el type table como fecha datetime pero cuando ejecuto la aplicacion y desde el console muestra: System.Data.SqlClient.SqlException: Error al convertir una cadena de caracteres en fecha y/u hora.
Los datos para el parámetro con valores de tabla '@lstConceptos' no se ajustan al tipo de tabla del parámetro. alguien pueda hecharme una mano gracias