Insertar registro y devolver columna clave

22/02/2005 - 20:11 por Fabián Aguirre | Informe spam
Hola amigos , tengo un problema. Necesito insertar un registro y que la
rutina me devuelva el Id (autonumerico) del nuevo registro .
como podría hacerlo ? intenté con esto pero no funciona:

Public Function EjecutarYDevolverCampo(ByVal StrSql As String, ByVal
CampoDevolver As String) As Object

Dim myCommand As New OleDbCommand(StrSql, cn)
Dim myReader As OleDbDataReader
If cn.State = ConnectionState.Closed Then
cn.Open()
End If

Try
myReader = myCommand.ExecuteReader()
Catch err As Exception
MessageBox.Show(err.Message)
Return Nothing

End Try

If myReader.RecordsAffected = 0 Then
Return Nothing
End If

While myReader.Read()
Return myReader.Item(CampoDevolver)
End While
myReader.Close()

End Function


Muchas gracias
 

Leer las respuestas

#1 SqlRanger
23/02/2005 - 13:36 | Informe spam
¿Qué sistema de base de datos estás usando? ¿Access, SQL Server .. ?

Lo pregunto porque la forma de obtener el autonumérico es diferente según el
sistema.

Saludos:

Jesús López



"Fabián Aguirre" escribió en el mensaje
news:
Hola amigos , tengo un problema. Necesito insertar un registro y que la
rutina me devuelva el Id (autonumerico) del nuevo registro .
como podría hacerlo ? intenté con esto pero no funciona:

Public Function EjecutarYDevolverCampo(ByVal StrSql As String, ByVal
CampoDevolver As String) As Object

Dim myCommand As New OleDbCommand(StrSql, cn)
Dim myReader As OleDbDataReader
If cn.State = ConnectionState.Closed Then
cn.Open()
End If

Try
myReader = myCommand.ExecuteReader()
Catch err As Exception
MessageBox.Show(err.Message)
Return Nothing

End Try

If myReader.RecordsAffected = 0 Then
Return Nothing
End If

While myReader.Read()
Return myReader.Item(CampoDevolver)
End While
myReader.Close()

End Function


Muchas gracias

Preguntas similares