Visual Basic.NET - Error en Identity_Insert

 
Vista:
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Error en Identity_Insert

Publicado por Miguel (281 intervenciones) el 18/10/2020 21:32:10
Hola puede alguien ayudarme con este error que tengo en un formulario al Insertar un registro.
"solo puede especificarse un valor explicito para la columna de Identidad de una tabla cuando se usa una lista de columnas e IDENTITY_INSERT es ON.

La función para Insertar es esta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Function InsertaObra(nuevaObra As Obra, eCaja As Caja, Pxp As PagosPendientes) As Boolean
    Dim Result As Boolean = False
    Try
        Dim sql As String
        Dim param As New DynamicParameters()
        Using T As TransactionScope = New TransactionScope()
            Using Conn = New SqlConnection(Conexion.ConnectionString)
                Conn.Open()
                param.Add("@IdCliente", nuevaObra.IdCliente, dbType:=DbType.Int32)
                param.Add("@Factura", nuevaObra.Factura, dbType:=DbType.String)
                param.Add("@IdEmpresa", nuevaObra.IdEmpresa, dbType:=DbType.Int32)
                param.Add("@DetalleObra", nuevaObra.DetalleObra, dbType:=DbType.String)
                param.Add("@Aceptado", nuevaObra.Aceptado, dbType:=DbType.Date)
                param.Add("@FormaPago", nuevaObra.FormaPago, dbType:=DbType.String)
                param.Add("@Iva", nuevaObra.Iva, dbType:=DbType.Int16)
                param.Add("@MaxContado", nuevaObra.MaxContado, dbType:=DbType.Int32)
                param.Add("@Total", nuevaObra.Total, dbType:=DbType.Decimal)
                param.Add("@EstadoObra", nuevaObra.EstadoObra, dbType:=DbType.String)
                param.Add("@IdProv", nuevaObra.IdProv, dbType:=DbType.Int16)
                param.Add("@IdCp", nuevaObra.IdCp, dbType:=DbType.Int32)
                param.Add("@IdCalle", nuevaObra.IdCalle, dbType:=DbType.Int32)
                sql = "INSERT INTO Obras VALUES(@IdCliente,@Factura,@IdEmpresa,@DetalleObra,@Aceptado,@FormaPago,@Iva,@MaxContado,@Total,@EstadoObra,@IdProv,@IdCp,@IdCalle)"
                Dim OkObra = Conn.Execute(sql, param, commandType:=CommandType.Text)
                If OkObra = 0 Then
                    T.Dispose()
                    Throw New Exception("Error al insertar la obra")
                End If
End Function

Este problema lo tengo a raíz de haber tenido que rehacer toda la tabla. Pero revisadas la tabla varias veces no veo ningún error al menos que yo sea consciente del mismo. De todas formas tengo diez tablas más y en ninguna otra me da problema.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder