SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: elmasciruja en Jueves 22 de Marzo de 2007, 21:43
-
Yo estaba usando access en una aplicacion y tengo que pasarla a SQL
SERVER2000.
El codigo que venia usando andaba perfecto, cuando cambio los Dataset
(desde origenes de datos) , los agrego uno por uno apuntando a la base
de datos en sql y a la tabla correspondiente.
Usando el mismo codigo que para access cuando quiero agregar registros
anda perfecto, pero cuando quiero modificar registros existentes o
borrar algun registro me aparece " Update requiere que DeleteCommand
sea válido cuando se pasa la colección DataRow con filas eliminadas "
El codigo que uso para borrar es este:
Dim registroborrar As
CargasAutorizadasDataset.Cargas_AutorizadasRow()
registroborrar = Me.CargasAutorizadasDataTable.Select("OCARG =
" + CStr(id))
Select Case registroborrar.GetUpperBound(0)
Case -1
MsgBox("No hay registros con ese identificador",
CType(MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, MsgBoxStyle),
"Error")
Timer1.Start()
Exit Sub
Case Is > 0
MsgBox("Hay demasiados registros con ese ID",
CType(MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, MsgBoxStyle),
"Error")
Timer1.Start()
Exit Sub
Case 0
If registroborrar(0).ESTADO = "Cargando" Then
Dim respuesta As
Microsoft.VisualBasic.MsgBoxResult
respuesta = MsgBox("Usted está intentando borrar
una orden de carga que se encuentra actualmente cargando. Esto puede
generar errores graves en el programa." + vbCrLf + "Está seguro que
desea hacerlo?", vbYesNo, "Borrado de registros")
If respuesta = MsgBoxResult.No Then
Timer1.Start()
Exit Sub
End If
End If
Loguear("Registro a Borrar Manualmente")
Loguear("OCA OCO REC CANT FECHA
ESTADO")
Loguear(CStr(registroborrar(0).OCARG) + " " +
CStr(registroborrar(0).OCOMP) + " " +
CStr(registroborrar(0).PRODUCTO) + " " +
CStr(registroborrar(0).CANTAUT) + " " +
CStr(registroborrar(0).FECHAAUT) + " " +
CStr(registroborrar(0).ESTADO))
registroborrar(0).Delete()
Cargas_AutorizadasTableAdapter.Update(registroborrar(0))
Loguear("Registro Borrado con exito")
End Select
Estoy bastante complicado, es algo que no lo puedo solucionar desde
hace varios dias, les agradecere con todo el corazon si me dan una mano
-
Tus datos ya estan en SQL server ..??? si es asi es tan facil como enviarle al server el query para eliminar un registro
Delete XXXX
where codigo = 5
:rolleyes:
pero si lo que queires es revisar si ese registro esta siendo utilizado en otras tablas las cuales tienen relacion podrias hacer un TRIGGER (un disparador) para que te verifique que antes de borrar un registro de esa tabla , vaya a ver si hay tablas que estan utilizando ese codigo en comun .....
No se si a eso te refieres ? :scream:
:comp:
-
Pero entonces dejo de usar los dataset, data adapter y todos los origenes de datos creados en la pestaña origenes de datos?
-
Ahhh esque vos lo hiciste con el asistente ... :rolleyes: bueno para MI en lo particular no me gusta usar eso porque como que lo pone a uno muy perezoso ala hora de hacer tus conexiones y un monton de cositas, pero sino estoy mal esa conexion solo te va a estar funcionando en solo ese form .. o me equivoco ? si es asi corriganme :P , lo que deberias de hacer es crear tus propias clases de conectividad para poderlas llamar desde cualquier lado de tu proyecto, y con el data set, dataadapter , claro que tienes que seguir trabando con ellos sino como vas a optener los datos de orginen , solo deberias de cambiar tu conexion , y crea otra clase la cual va a enviar el Query que tu pongas a la BD .....
:smartass:
-
Tenes algun ejemplo de como hacer todo esto ?