Hola como cargo un txt a una bd sql, uso el bulk pero la dir del txt lo capturo en un label .net
lo que tengo es una clase que se llama ConexionTxt(), donde hago la conexión al sql server, tengo una función cargartxt(), donde le doy la instrucción para que cargue el archivo plano mediante el uso del BULK, lo que ocurre es que la ubicación del archivo plano la capturo en un label, por intermedio de un openfiledialog... Como hago, me sale lo siguiente "Sintaxis Incorrecta cerca de c:."... Les copeo el código de la clase, gracias por la ayuda, ahh estoy usando .net.
'Data nos permite usar objetos que se encargan de manejar grandes volúmenes de datos en memoria Ram
Imports System.Data
'Data.OleDb nos permite conectarnos a orígenes de datos distintos a sql server
Imports System.Data.OleDb
'Data.SqlClient nos ayuda a usar objetos que se conecten a las BD de sql server y ejecutar transacciones desde vb.net
Imports System.Data.SqlClient
Public Class ConexionTXT
'construimos un atributo privado ruta, que almacenara la ruta de conexión
'datasource = ruta del servidor
'initial catalog = nombre de la bd
'user id = usuario de la bd y password del usuario
Public rutasql As String = _
"Data Source = ARIES\SQLEXPRESS; " & _
"Initial Catalog = Manejo_Archivos; " & _
"User Id=sa; Password=validacion2012"
Public Function cargartxt() As DataTable
'objeto de la clase SqlConnection que recibe el atributo ruta de esta clase en el constructor
Dim cnn2 As New SqlConnection(rutasql)
Try
'construimos la consulta T-SQL de inserción masiva se usa el comando BULK
'el delimitador de campos son comas
Dim txtsql As String = _
"BULK INSERT Manejo_Archivos.dbo.TablaMasiva FROM " & My.Forms.FormSelCargaTxt.LblVisorArchSel.Text & _
"WITH (CODEPAGE = 'ACP',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')"
'creamos el comando
Dim cmd2 As New SqlCommand(txtsql, cnn2)
'definimos el tipo de comando del obj sqlcommand el tipo de comando debe ser Text
cmd2.CommandType = CommandType.Text
'se abre la conexión de nuestra API con sql
cnn2.Open()
'ejecutamos la consulta
Dim n As Integer = cmd2.ExecuteNonQuery()
'mostramos mensaje
MessageBox.Show("No. De Registros afectados: " & CStr(n))
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
Finally
'cerramos la conexión
cnn2.Close()
End Try
Return Nothing
End Function
End Class
creo que el error se debe en la linea del BULK cerca al FROM, llamo el objeto label y su atributo text para que muestre la ruta del txt... Gracias por la ayuda