C sharp - insertar en base de datos

 
Vista:

insertar en base de datos

Publicado por pedrito (9 intervenciones) el 13/09/2006 14:19:47
hola a todos, mirar tengo un problema para insertar en una base de datos y despues de darle muchas vueltas no se que es lo que ocurre.
Estoy realizando un proyecto con patrones de diseño y estoy utilizando façade para acceder a los datos de la BD y para realizar cualquier operacion sobre ellos (con un dataAdapter y un dataSet con tipo). Esto no es un problema porque igualmente sin façade accedia a los datos y realizaba operaciones de insercion y borrado correctamente. La cuestion esque tengo dos campos de mi tabla que no debo almacenar y entonces lo que hago es almacenarlos como DBNull.Value pero ahi es donde me da el error en la insercion. Os pongo un poco de mi codigo para que lo veais:

this.miComando.CommandText="select * from Usuarios";
this.miComando.Connection=this.miConexion;
this.dataAdapterCliente.SelectCommand=this.miComando;
System.Data.OleDb.OleDbCommandBuilder cmb2= new OleDbCommandBuilder(dataAdapterCliente);
this.miConexion.Open();
this.dataAdapterCliente.Fill(midataset, "Usuarios");
this.miConexion.Close();

public void insertarUsuario(Usuario u) {

DataRow fila=this.midataset.Usuarios.NewRow();
fila["nombre"]=u.obtener_nom();
fila["primer_apellido"]=u.obtener_prim_ape();
fila["segundo_apellido"]=u.obtener_seg_ape();
fila["dni"]=u.obtener_dni();
fila["direccion"]=u.obtener_dire();
fila["codigo postal"]=u.obtener_codpost();
fila["poblacion"]=u.obtener_pobla();
fila["provincia"]=u.obtener_provin();
fila["telefono1"]=u.obtener_tele1();
fila["telefono2"]=u.obtener_tele2();
fila["login"]=u.obtener_login();
fila["password"]=u.obtener_pass();
fila["socio"]=u.obtener_si_es_socio();
fila["cod_socio"]=DBNull.Value;
fila["taquilla_diaria"]=DBNull.Value;
fila["estado"]=u.obtener_estado_cliente();
this.midataset.Usuarios.Rows.Add(fila);
}

miConexion.Open();
this.dataAdapterCliente.Update(midataset, "Usuarios");
miConexion.Close();

El error me lo da en esta penunltima fila donde tiene que hacer el update en la base de datos, he pensado que como el dataAdapter lo creo por codigo y no tiene la instruccion insert me da problemas por eso, pero para eso he puesto el OleDbCommandBuilder, entonces ya no se. ademas, cod_socio y taquilla_diaria que es donde me pone la excepcion de tipo strongtypingexception estan indexadas a otras tablas pero no son campos requeridos. En fin que no se que hacer. A ver si alguien tiene alguna idea sobre esto. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:insertar en base de datos

Publicado por pedrito (9 intervenciones) el 13/09/2006 18:01:24
no os lo he comentado antes pero el error me dice esto:

Index:#0
Message: Error de sintaxis en la instruccion Insert into
NativeError: -524815790+
Source: Microsoft Jet Database Engine
SQLState: 3000
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar