Condición para evitar id duplicada
Estoy haciendo uns sistema en tres capas en la que la clave o id no es autonumérico, entonces si yo ingreso registros con la misma id, se guarda eb la base de datos sql hice una consulta antes de guardar para verificar si existía ese id en la bd, si existe manda un mnesaje que ya exioste el id sino lo guarda. Pero no se como hacer que si la caapa de datos encontró un valor lo mande a la capa de presentación.
Capa de presentación
objPuesto.Clave = Convert.ToString(TxtClave.Text.Trim())
objPuesto.NombrePuesto = Convert.ToString(TxtPuesto.Text.Trim())
objPuesto.ChecarID() \\ este linea manda a la capa de negocio.
If chec > 0 Then \\ aqui no se como hacer la condicion si encotro mayor a cero
MsgBox("La clave ya existe")
Else
objPuesto.Guardar()
If Not objPuesto.BlnError Then
Actualizar()
MsgBox("xito al guardar", MsgBoxStyle.Information, "GUARDAR REGISTROS")
Else
MsgBox("No se pudo guardar el registro" + vbCrLf & "Intentelo de nuevo", MsgBoxStyle.Critical, "ERROR AL GUARDAR")
Exit Sub
End If
End If
capa de negocio
Public Sub ChecarID()
objPersPuesto.ChecarID(a)
BlnError = objPersPuesto.BlnError
capa de datos
Public Sub ChecarID(ByVal clave As String)
Dim strSQl As String
strSQl = ""
strSQl = "select count(*) from Puesto where IdPuesto = " & clave
objBD.Ejecutar(strSQl)
BlnError = objBD.BlnError
End Sub
En esta parte no se como hacer para que mande el resultado a la capa de presentación.
Capa de presentación
objPuesto.Clave = Convert.ToString(TxtClave.Text.Trim())
objPuesto.NombrePuesto = Convert.ToString(TxtPuesto.Text.Trim())
objPuesto.ChecarID() \\ este linea manda a la capa de negocio.
If chec > 0 Then \\ aqui no se como hacer la condicion si encotro mayor a cero
MsgBox("La clave ya existe")
Else
objPuesto.Guardar()
If Not objPuesto.BlnError Then
Actualizar()
MsgBox("xito al guardar", MsgBoxStyle.Information, "GUARDAR REGISTROS")
Else
MsgBox("No se pudo guardar el registro" + vbCrLf & "Intentelo de nuevo", MsgBoxStyle.Critical, "ERROR AL GUARDAR")
Exit Sub
End If
End If
capa de negocio
Public Sub ChecarID()
objPersPuesto.ChecarID(a)
BlnError = objPersPuesto.BlnError
capa de datos
Public Sub ChecarID(ByVal clave As String)
Dim strSQl As String
strSQl = ""
strSQl = "select count(*) from Puesto where IdPuesto = " & clave
objBD.Ejecutar(strSQl)
BlnError = objBD.BlnError
End Sub
En esta parte no se como hacer para que mande el resultado a la capa de presentación.
Respuesta de germarine
1