No repetir datos en excel visal basic

Hola..
Como debo realizar un código que cuando suba una base de datos de excel a SQL por medio de Visual Basic 2008, no se repitan datos.
Necesito subir 6 campos entre ellos números de guía, como hago para que no se repita ningún dato.
Por fa, puedes ser lo más explicito posible, es que he visto algunos ejemplos pero no me queda claro.
Mil gracias.

1 Respuesta

Respuesta
1
¿Qué método usas para subir los datos a BD?
Hola.
Un código realizado en visual basic
Gracias.
Así no me ayudas mucho, en la otra pregunta igual, no dices las cosas claras.
Si deseas que te ayude pues ponme algo de tu código para poder ver como le haces y ver como mejorar tu código.
Hola este el código que utilizo para subir datos. Gracias.
Protected Sub btnRealizarCarga_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnRealizarCarga.Click
Try
Dim datos As New datos
Dim numeroGuia As Integer
Dim CodigoDest As Integer
Dim cantidad As Integer
Dim codigoProd As Integer
Dim MiConexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties = 'Excel 8.0'; Data Source=C:\Users\Mauro\Desktop\Pruebilla.xlsx")
Dim MiAdaptador As New OleDbDataAdapter("SELECT * FROM [Hoja1$]", MiConexion)
Dim dt As New DataTable
Dim commandbuilder As New OleDb.OleDbCommandBuilder(MiAdaptador)
MiConexion.Open()
MiAdaptador.Fill(dt)
MiConexion.Close()
If ValidarXls(dt) = True Then
'Rows = Fila
'Item = Columna
Dim i As Integer
For i = 0 To dt.Rows.Count - 1
numeroGuia = dt.Rows(i).Item(0)
CodigoDest = dt.Rows(i).Item(1)
cantidad = dt.Rows(i).Item(2)
codigoProd = dt.Rows(i).Item(3)
If datos.Crearguia(numeroGuia, CodigoDest, cantidad, codigoProd) = False Then
lblMensaje.Text = "Ha ocurrido un error al momento de guardar los registros"
Exit Sub
End If
Next
lblMensaje.Text = "Carga masiva de Usuarios realizada con Exito!!!!!"
Else
lblMensaje.Text = "ha ocurrido un error al momento de validar el Excel"
End If
Catch ex As Exception
lblMensaje.Text = ex.ToString
End Try
End Sub
Ponme el código de la Clase "Datos" de la función "Crearguia"
Function Crearguia(ByVal numeroGuia As Integer, ByVal CodigoDest As Integer, ByVal cantidad As Integer, ByVal codigoProd As Integer, ByVal estado As Integer) As Boolean
Dim Conmydata As SqlConnection 'para conectar con la base datos'
Dim cmdselect As SqlCommand 'sqlcommand sirve para ejecutar una instruccion de sql'
Dim strsql As String ' strsql variable donde se almacena la intruccion a ejecutar'
strsql = "insert into Guia values ('" & numeroGuia & "','" & CodigoDest & "','" & cantidad & "','" & codigoProd & "','" & estado & "')"
Conmydata = New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("StrCon").ConnectionString)
cmdselect = New SqlCommand(strsql, Conmydata)
cmdselect.CommandType = CommandType.Text
Try
Conmydata.Open() 'intenta ejecutar la instrucción, si no puede arroja la excepción o el error'
cmdselect.ExecuteNonQuery()
Conmydata.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
Antes de hacer el INSERT, deberás hacer un SELECT y buscar el número de guía que vas a insertar.
Como no usas SP será un poco más complicado, pues deberás hacer el Select con el Where y ponerlo en un DataSet, preguntar si el DataSet tiene algo, si tiene un registro, eso quiere decir que el número de guía ya existe en la BD y no deberás hacer el Insert.
Lo ideal aquí sería crear un StoreProducedure y con IF ELSE de SQL preguntar si el SELECT devuelve algo, entonces no insertas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas