Jueves 14 de Noviembre de 2024, 18:54
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
ASP .NET
(Moderador:
sergiotarrillo
) »
Error De Insertado En Tabla Access
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Error De Insertado En Tabla Access (Leído 1689 veces)
Moy
Miembro activo
Mensajes: 45
Error De Insertado En Tabla Access
«
en:
Viernes 10 de Junio de 2005, 14:29 »
0
Yo que estoy ya acostumbrado a manejar tablas, datarows y datasets en el .Net, me voy al ASP.Net y tengo que pedir lo tipico, los datos de un tipo para registrarle en un foro (o enviarle correo basura por un tubo) y al intentar hacer el update con el data adapter me revienta el código diciendo que le tengo que pasar una consulta actualizable.
¿Qué coño es eso?
Veamos, yo tengo una base de datos Access llamada Perfiles en el directorio virtual donde estoy trabajando.
La conexión, rellenado del dataset Datos y la creación de los comandos de inserción lo hago así.
Código: Text
Dim Ruta As String
Dim CustomCB As OleDbCommandBuilder
Ruta = Server.MapPath("/formulario/Perfiles.mdb")
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta
Adapt = New OleDbDataAdapter("SELECT id_usuario, nombre, apellidos, password, fecha, email, localidad, genero, foto, permiso FROM T_perfil", Cn)
Datos = New DataSet
Cn.Open()
Adapt.Fill(Datos, "T_Perfil")
TablaPerfil = Datos.Tables("T_perfil")
'Generación de los códigos de modificación
CustomCB = New OleDbCommandBuilder(Adapt)
CustomCB.QuotePrefix = "["
CustomCB.QuoteSuffix = "]"
CustomCB.RefreshSchema()
Cn.Close()
Hasta ahí todo correcto, espero.
Ahora veamos como creo una nueva fila, la relleno y se la inserto al dataset por donde le quepa.
Código: Text
Cn.Open()
Ficha = Datos.Tables("T_perfil").NewRow()
Ficha("nombre") = Me.TNombre.Text
Ficha("apellidos") = Me.TApellido.Text
Ficha("password") = Me.TPassword.Text
Ficha("email") = Me.TEmail.Text
Ficha("genero") = Me.RBGenero.SelectedValue
Ficha("localidad") = Me.TLocalidad.Text
If Me.CTerminos.Checked Then
Ficha("permiso") = True
Else : Ficha("permiso") = False
End If
Datos.Tables("T_perfil").Rows.Add(Ficha)
Adapt.Update(Datos, "T_perfil")
Datos.AcceptChanges()
Cn.Close()
Esto sería lo básico, ya me preocuparé de filtrar los errores y demás pasteles cuando funcione, porque al llegar al adapt.update me dice que no le sale de los comandos hacerlo y me suelta el mensaje de que quiere una consulta actualizable.
Yo estoy ya que no veo, asi que por favor, ¿alguno de vosotros logra ver en qué me he equivocado y me puede dar la colleja salvadora que me dirija por el camino correcto?
Tweet
Moy
Miembro activo
Mensajes: 45
Re: Error De Insertado En Tabla Access
«
Respuesta #1 en:
Martes 14 de Junio de 2005, 10:23 »
0
Nada, que sigo sin poder insertar nada en la tabla Access.
¿Qué puede estar fallando?
¿Hay que tener algo en cuenta a la hora de trabajar cin una base de datos access localizada en el servidor?
En vez de insertar he probado meter a mano un par de lineas y de mostrarlas por pantalla, y funciona, por lo que la cadena de conexión no debería ser el problema.
¿Podría ser por la generación automatica de los comandos?
Por si acaso estoy intentando hacer la inserción por medio de comandos, pero tambien me falla y me dice que hay un error en la sentencia Insert into.
Esto es lo que he hecho
Código: Text
Dim sql As String
Dim loquesalga as integer
Try
sql = "insert into T_perfil(nombre,apellidos,password,email,localidad) "
sql = sql + "Values('Paco','Garcia','11234','algarroba@hotmail.com','Cuenca')"
Dim Cmd As New OleDbCommand(sql, Cn)
Cn.Open()
loquesalga=Cmd.ExecuteNonQuery()
Cn.Close()
Catch ex As Exception
Response.Write("Excepcion:" + ex.ToString())
End Try
La instruccion de sql que uso para insertar no debería ser el problema,ya que la he usado tambien a mano en un editor sql y funciona perfectamente.
¿Puede ser porque uso un autonumerico como clave principal?
Güorker
Miembro MUY activo
Mensajes: 383
Re: Error De Insertado En Tabla Access
«
Respuesta #2 en:
Martes 14 de Junio de 2005, 15:07 »
0
Hola,
Lo del autonumerico no creo que sea, ya que no intentas establecer ese valor a traves de la insert.
No se lo que te puede estar pasando, pero si puedes postea el mensaje de error que te da, a ver si así podemos ayudarte.
Saludos y suerte.
[size=109]
Ondo ibili, gutxi gastau eta bueltak amari
[/size]
[size=109]
Pasalo bien, gasta poco y las vueltas a tu madre
[/size]
Moy
Miembro activo
Mensajes: 45
Re: Error De Insertado En Tabla Access
«
Respuesta #3 en:
Martes 14 de Junio de 2005, 20:33 »
0
Diox... El que no sabe es como el que no ve...
Ya descubrí cual era el fallo que me ha tenido 3 días estancado en la misma linea de código.
El error que me saltaba me decía "La consulta debe ser actualizable", cuando lo que los kpullos de microsoft deberían haber puesto era "Mira, que la base de datos Access está puesta como solo lectura para los usuarios y así solo te va a dejar hacer selects."
Quitándole el "solo lectura" funciona, pero supongo que si en la cadena de conexión me identifico como administrador me dejará sin tener que dejar la base tan desprotegida.
Ke duro es ser programador...
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
ASP .NET
(Moderador:
sergiotarrillo
) »
Error De Insertado En Tabla Access