Public Sub AgregarMaestroDetalle()
Using cn As New SqlConnection(CadenaConexion)
cn.Open()
Dim Trans As SqlTransaction = cn.BeginTransaction()
Dim cmd As SqlCommand = cn.CreateCommand()
cmd.Transaction = Trans
cmd.CommandType = CommandType.StoredProcedure
Try
'Insertamos la cabecera en la base de datos
cmd.CommandText = "NombreStoredProcedureInsertaCabecera"
cmd.Parameters.AddWithValue("@NombreParametro1", ValorParametro1)
cmd.Parameters.AddWithValue("@NombreParametro2", ValorParametro2)
...
cmd.Parameters.AddWithValue("@NombreParametroN", ValorParametroN)
Dim param As SqlParameter = cmd.Parameters.Add("@NuevoId", SqlDbType.Int)
param.Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
NuevoId = Convert.ToInt32(cmd.Parameters("@NuevoId").Value)
'Insertamos el detalle
cmd.CommandText = "NombreStoredProcedureInsertaDetalle"
For Each dr As DataRow In dtRepuestos.Rows
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@ONuevoId", NuevoId)
cmd.Parameters.AddWithValue("@ParametroDetalle1", dr("ValorDetalle1"))
cmd.Parameters.AddWithValue("@ParametroDetalle1", dr("ValorDetalle1"))
...
cmd.Parameters.AddWithValue("@ParametroDetalleN", dr("ValorDetalleN"))
cmd.ExecuteNonQuery()
Next
Trans.Commit()
cn.Close()
Catch ex As Exception
Trans.Rollback()
End Try
End Using
End Sub