Error Añadir Fila SQLCE 2005

28/02/2006 - 16:17 por Oscar M | Informe spam
Hola, al intentar agregar una nueva fila en una tabla obtengo el siguiente
error:There was an error parsing the query. [Token line number,Token line
offset,,Token in error,,]
No se por donde puede venir el error, asi que os copio las rutinas que
utilizo para cargar la tabla y añadir la fila:Esta es la rutina al cargar el
formulario, en ella rellenamos el DataSet con la tabla VisitasPrivate Sub
VDetalle_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load

VerBotones(False)

Dim cn As SqlCeConnection

Try

cn = New SqlCeConnection("Data Source=\Program
Files\sistema\Bcontrolito.sdf")

cn.Open()

Dim cmd As SqlCeCommand = cn.CreateCommand

cmd.CommandText = "SELECT * FROM Visitas"

da = New SqlCeDataAdapter(cmd)

Dim CB As SqlCeCommandBuilder

CB = New SqlCeCommandBuilder(da)

' Como hay campos con caracteres especiales,

' al usarlos incluirlos entre corchetes.

CB.QuotePrefix = "["

CB.QuoteSuffix = "]"

' Asignar los comandos al DataAdapter

da.UpdateCommand = CB.GetUpdateCommand

da.InsertCommand = CB.GetInsertCommand

da.DeleteCommand = CB.GetDeleteCommand

' Esta base de datos usa el ID con valores automáticos

da.MissingSchemaAction = MissingSchemaAction.AddWithKey

da.Fill(ds)

RellenarTxts(0)

Dim Fila As DataRow

Fila = ds.Tables(0).Rows(ds.Tables(0).Rows.Count - 1)

IDGlobal = CInt(Fila("IDVisita")) + 1

Catch sqlex As SqlCeException

Dim sqlError As SqlCeError

For Each sqlError In sqlex.Errors

MessageBox.Show(sqlError.Message)

Next

Catch ex As Exception

MessageBox.Show(ex.Message)

Finally

If cn.State <> ConnectionState.Closed Then

cn.Close()

End If

End Try

End Sub







Y este es la rutina del boton que acepta los valores introducidos en los
textbox

Private Sub BtnAceptar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnAceptar.Click

Dim cn As SqlCeConnection

Try

Dim Fila As DataRow

Fila = ds.Tables(0).NewRow

Fila("IDVisita") = IDGlobal

Fila("Direccion") = Me.TxtDireccion.Text

Fila("Localidad") = Me.TxtLocalidad.Text

Fila("CP") = Me.TxtCp.Text

Fila("Contacto") = Me.TxtContacto.Text

Fila("Telefono") = Me.TxtTelefono.Text

Fila("Movil") = Me.TxtMovil.Text

Fila("Email") = Me.TxtEmail.Text

ds.Tables(0).Rows.Add(Fila)

da.Update(ds)

ds.Tables(0).AcceptChanges()

MessageBox.Show("Registro agregado")

IDGlobal = IDGlobal + 1

BloquearTxts(True)

VerBotones(False)



Catch sqlex As SqlCeException

Dim sqlError As SqlCeError

For Each sqlError In sqlex.Errors

MessageBox.Show(sqlError.Message)

Next

Catch ex As Exception

MessageBox.Show(ex.Message)

Finally

End Try

End Sub
 

Leer las respuestas

#1 Oscar M
28/02/2006 - 16:45 | Informe spam
Hola a todos de nuevo...

pues de momento a base de prueba y error he conseguido que funcione
eliminando las siguientes lineas:

CB.QuotePrefix = "["
CB.QuoteSuffix = "]"

no se muy bien por que, pero funciona...

Si alguién me lo puede explicar un poco, soy todo ojos...




"Oscar M" escribió en el mensaje
news:
Hola, al intentar agregar una nueva fila en una tabla obtengo el siguiente
error:There was an error parsing the query. [Token line number,Token line
offset,,Token in error,,]
No se por donde puede venir el error, asi que os copio las rutinas que
utilizo para cargar la tabla y añadir la fila:Esta es la rutina al cargar
el formulario, en ella rellenamos el DataSet con la tabla VisitasPrivate
Sub VDetalle_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

VerBotones(False)

Dim cn As SqlCeConnection

Try

cn = New SqlCeConnection("Data Source=\Program
Files\sistema\Bcontrolito.sdf")

cn.Open()

Dim cmd As SqlCeCommand = cn.CreateCommand

cmd.CommandText = "SELECT * FROM Visitas"

da = New SqlCeDataAdapter(cmd)

Dim CB As SqlCeCommandBuilder

CB = New SqlCeCommandBuilder(da)

' Como hay campos con caracteres especiales,

' al usarlos incluirlos entre corchetes.

CB.QuotePrefix = "["

CB.QuoteSuffix = "]"

' Asignar los comandos al DataAdapter

da.UpdateCommand = CB.GetUpdateCommand

da.InsertCommand = CB.GetInsertCommand

da.DeleteCommand = CB.GetDeleteCommand

' Esta base de datos usa el ID con valores automáticos

da.MissingSchemaAction = MissingSchemaAction.AddWithKey

da.Fill(ds)

RellenarTxts(0)

Dim Fila As DataRow

Fila = ds.Tables(0).Rows(ds.Tables(0).Rows.Count - 1)

IDGlobal = CInt(Fila("IDVisita")) + 1

Catch sqlex As SqlCeException

Dim sqlError As SqlCeError

For Each sqlError In sqlex.Errors

MessageBox.Show(sqlError.Message)

Next

Catch ex As Exception

MessageBox.Show(ex.Message)

Finally

If cn.State <> ConnectionState.Closed Then

cn.Close()

End If

End Try

End Sub







Y este es la rutina del boton que acepta los valores introducidos en los
textbox

Private Sub BtnAceptar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnAceptar.Click

Dim cn As SqlCeConnection

Try

Dim Fila As DataRow

Fila = ds.Tables(0).NewRow

Fila("IDVisita") = IDGlobal

Fila("Direccion") = Me.TxtDireccion.Text

Fila("Localidad") = Me.TxtLocalidad.Text

Fila("CP") = Me.TxtCp.Text

Fila("Contacto") = Me.TxtContacto.Text

Fila("Telefono") = Me.TxtTelefono.Text

Fila("Movil") = Me.TxtMovil.Text

Fila("Email") = Me.TxtEmail.Text

ds.Tables(0).Rows.Add(Fila)

da.Update(ds)

ds.Tables(0).AcceptChanges()

MessageBox.Show("Registro agregado")

IDGlobal = IDGlobal + 1

BloquearTxts(True)

VerBotones(False)



Catch sqlex As SqlCeException

Dim sqlError As SqlCeError

For Each sqlError In sqlex.Errors

MessageBox.Show(sqlError.Message)

Next

Catch ex As Exception

MessageBox.Show(ex.Message)

Finally

End Try

End Sub


Preguntas similares