problema con INSERT a un access

25/04/2006 - 14:13 por DarthSidious | Informe spam
buenos dias!, estoy comenzando en el .net y necesito hacer una consulta para
insertar una fila en una tabla de access, pero, no puedo, me da error. Lo que
hago es lo siguiente:

Al principio del programa abro la conexion asi:

Dim strConexion As String
Dim strINSERT As String
strConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Base.mdb;User
ID=;Password=;"
strINSERT = "INSERT INTO Tabla1 (Sucursal, Ter, Nro, Fech, Impa,
tra_LineaArchivo, tra_Fec2, tra_NombreArchivoContenedor) VALUES (" & sSuc &
"," & sTer & "," & sTran & ",'" & sFecha & "'," & sImporte & ",'" & sLinea &
"',NULL,'" & sNombreDelArchivoContenedor & "')"
Dim myConexion As New OleDb.OleDbConnection(strConexion)
Dim myCommand As New OleDb.OleDbCommand(strINSERT)
myCommand.Connection = myConexion
myConexion.Open()


luego el programa rescata informacion de un archivo, leyendo linea por linea
dentro
de un while, y en cada ciclo del while necesito insertar esos datos en el
sql, para lo cual luego de haber rescatado la info del archivo hago:

myCommand.ExecuteNonQuery()

pero me tira este error:

Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en
system.data.dll

alguna idea como hacer esto? si algun MVP me puede decir como seria la forma
"LEGAL" por Microsoft de hacer una conexion al sql o acces, les agradeceria
algun tip.

gracias por tomarse el tiempo de leer todo esto
:-)

Preguntas similare

Leer las respuestas

#1 Carlos Gómez
25/04/2006 - 22:39 | Informe spam
DarthSidious wrote:

buenos dias!, estoy comenzando en el .net y necesito hacer una consulta
para insertar una fila en una tabla de access, pero, no puedo, me da
error. Lo que hago es lo siguiente:

Al principio del programa abro la conexion asi:

Dim strConexion As String
Dim strINSERT As String
strConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Base.mdb;User ID=;Password=;"
strINSERT = "INSERT INTO Tabla1 (Sucursal, Ter, Nro, Fech, Impa,
tra_LineaArchivo, tra_Fec2, tra_NombreArchivoContenedor) VALUES (" & sSuc
& "," & sTer & "," & sTran & ",'" & sFecha & "'," & sImporte & ",'" &
sLinea & "',NULL,'" & sNombreDelArchivoContenedor & "')"
Dim myConexion As New OleDb.OleDbConnection(strConexion)
Dim myCommand As New OleDb.OleDbCommand(strINSERT)
myCommand.Connection = myConexion
myConexion.Open()


luego el programa rescata informacion de un archivo, leyendo linea por
linea dentro
de un while, y en cada ciclo del while necesito insertar esos datos en el
sql, para lo cual luego de haber rescatado la info del archivo hago:

myCommand.ExecuteNonQuery()

pero me tira este error:

Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en
system.data.dll

alguna idea como hacer esto? si algun MVP me puede decir como seria la
forma "LEGAL" por Microsoft de hacer una conexion al sql o acces, les
agradeceria algun tip.

gracias por tomarse el tiempo de leer todo esto
:-)


Creo que el error es que estas metiendo NULL (String) en un campo Fecha/Hora
como lo llama access.
Usa parametros y en vez del NULL usa DbNull.Value
Respuesta Responder a este mensaje
#2 Sergio RosyNEt
26/04/2006 - 09:47 | Informe spam
Buenos dias!, Creo que el problema esta al intentar insertar un campo fecha
con ', en su lugar hay que utilizar #. De lo contrario normalmente da un
error de conversión de tipos. (Siempre que el campo Fech sea del tipo
DateTime o en Acces Fecha/Hora

De esta forma la cadena del insert quedaría:

strINSERT = "INSERT INTO Tabla1 (Sucursal, Ter, Nro, Fech, Impa,
tra_LineaArchivo, tra_Fec2, tra_NombreArchivoContenedor) VALUES (" & sSuc &
"," & sTer & "," & sTran & ",#" & sFecha & "#," & sImporte & ",'" & sLinea &
"',NULL,'" & sNombreDelArchivoContenedor & "')"



De todas formas el String conection que suelo utilizar para Bd acces sin
password es:
strConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""Ruta Base de
datos""", es posible que tu sentencia le falten las comillas a la cadena del
data source.

Saludos,

"DarthSidious" escribió:

buenos dias!, estoy comenzando en el .net y necesito hacer una consulta para
insertar una fila en una tabla de access, pero, no puedo, me da error. Lo que
hago es lo siguiente:

Al principio del programa abro la conexion asi:

Dim strConexion As String
Dim strINSERT As String
strConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Base.mdb;User
ID=;Password=;"
strINSERT = "INSERT INTO Tabla1 (Sucursal, Ter, Nro, Fech, Impa,
tra_LineaArchivo, tra_Fec2, tra_NombreArchivoContenedor) VALUES (" & sSuc &
"," & sTer & "," & sTran & ",'" & sFecha & "'," & sImporte & ",'" & sLinea &
"',NULL,'" & sNombreDelArchivoContenedor & "')"
Dim myConexion As New OleDb.OleDbConnection(strConexion)
Dim myCommand As New OleDb.OleDbCommand(strINSERT)
myCommand.Connection = myConexion
myConexion.Open()


luego el programa rescata informacion de un archivo, leyendo linea por linea
dentro
de un while, y en cada ciclo del while necesito insertar esos datos en el
sql, para lo cual luego de haber rescatado la info del archivo hago:

myCommand.ExecuteNonQuery()

pero me tira este error:

Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en
system.data.dll

alguna idea como hacer esto? si algun MVP me puede decir como seria la forma
"LEGAL" por Microsoft de hacer una conexion al sql o acces, les agradeceria
algun tip.

gracias por tomarse el tiempo de leer todo esto
:-)

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida