• Viernes 26 de Abril de 2024, 20:28

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - saitohfin

Páginas: [1]
1
C# / Informe con C#
« en: Jueves 12 de Agosto de 2010, 12:05 »
Buenas, llevo ya mucho tiempo con este problema y he intentado varias soluciones que no me han servido de mucho. Os explico

Objetos:   Dentro de un Form hay un Datagridview y un Chart.

Objetivo: Hacer varias tablas y gráficas de consultas que se van haciendo y sacarlas a un documento que permita su impresión, claramente una detrás de otra.

Soluciones que recuerdo haber intentado:  

- Captura de pantalla por cada consulta hecha y datos metidos en sus respectivos sitios. *Hasta que no acaba el método no imprimen gráficos ninguno de los dos, por lo que se intercalan varias tablas y gráficas con nada dentro de ellas.

- Probando en introducirlos en un word *Estoy en fase de experimentación pero parece que no me va a llevar a ningún sitio.

- Última opción, hacerlos en un HTML. *Me da que me pasará igual que al primero.

Me gustaría algún consejo para poder llegar a hacer lo que quiero, o si hay alguna forma con Visual Studio para realizarlas, hacer unas tablas y unas gráficas de barras en un documento.

Muchas gracias por la atención.

2
MS Access / Re: Interactuar con claves primaria c#
« en: Jueves 12 de Agosto de 2010, 11:48 »
Muchas gracias, al final he conseguido hacerlo, como una sentencia SQL fuera y en vez de Number que es lo normal me lo coge con INTEGER y en vez de TEXT con VARCHAR, una muestra de como lo he hecho:

            t = "CREATE TABLE DATOS(ID INTEGER IDENTITY PRIMARY KEY, REF VARCHAR(8) NOT NULL, NOMBRE VARCHAR(25), ";
            t+="APELLIDO1 VARCHAR(25), APELLIDO2 VARCHAR(25),DNI VARCHAR(9) UNIQUE, DIRECCION VARCHAR(40), LOCALIDAD VARCHAR(20), ";
            t+="SEXO VARCHAR(1), FECHA_NCTO DATE, TELEFONO INTEGER, EMAIL VARCHAR(40), ENTR_AYTO DATE);";
            com.CommandText = t;
            com.ExecuteNonQuery();  //Introducimos sentencia en la ejecutamos con el comando.


Muchas gracias por la atención.

3
MS Access / Re: Interactuar con claves primaria c#
« en: Viernes 16 de Julio de 2010, 11:33 »
Después de debuggear he visto que el problema lo tengo en el CREATE TABLE, pero no sé donde, alguna idea de donde puede estar el problema?? Muchas Gracias!!

4
MS Access / Re: Interactuar con claves primaria c#
« en: Viernes 16 de Julio de 2010, 11:08 »
Ok muchas gracias, ahora tengo un problema haber si le podeis echar un vistazo, se trata de  que cuando intento insertar me dice que no existe la tabla Estudios, cuando inserto lo hago con parámetros y tal. Mí código al crear es este:

public void Crear_BD_Opeas(String ruta)
    ADOX.Catalog cat = new ADOX.Catalog();
    String con = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=" + ruta+ "Jet OLEDB:Engine Type=5";
    cat.Create(con);
    String t = "CREATE TABLE ESTUDIOS(Estudios VARCHAR(20) PRIMARY KEY, Bloque NUMBER(2) NOT NULL)";
        Conectar();
        conexion.Open();
        OleDbCommand comando = new OleDbCommand(t, conexion);
        comando.ExecuteNonQuery();
        conexion.Close();        
            }

He quitado los try{ catch{

Muchas gracias.

5
MS Access / Re: Numerar mis registros de una consulta
« en: Miércoles 14 de Julio de 2010, 20:07 »
Yo es que trabajo en c#, supongo que trabajaras con el Oledb, así que usas esa sentencia y lo que te devuelva lo pasas a una variable de tipo int

int x = int.parse(tabla[indice_de campo_clave]));
x++
y luego insertas x como el campo clave.

6
MS Access / Re: Numerar mis registros de una consulta
« en: Miércoles 14 de Julio de 2010, 20:02 »
ok, digamos que la sentencia que tendrías que meter en el Oledbcommand sería:

Select Count(*) from Nombre_Tabla

7
MS Access / Re: Numerar mis registros de una consulta
« en: Miércoles 14 de Julio de 2010, 18:45 »
Veamos a ver, deberías tener un campo para identificar el registro, entonces lo que puedes hacer es una consulta SQL con la sentencia Count de todos los registros de la tabla, entonces te devolverá el número de registros que tiene la tabla por lo que el nuevo registro a añadir debe ser el resultado del Count + 1.

La idea es contar los registros que hay en la tabla y aumentar en 1 para el nuevo registro, igualmente yo creo que usando una clave primaria debería poderse, pero por ahora no eso no te lo puedo explicar.

8
MS Access / Interactuar con claves primaria c#
« en: Miércoles 14 de Julio de 2010, 13:56 »
Buenas, tengo un problema y es que no entiendo muy bien como va a entender el access la sentencias SQL que le meto y luego como tratarlas. El caso que tengo entre manos es que he creado una BD de Access y he declarado una variable ID como primaria en una Tabla y en otra lo mismo pero que aparte será
clave ajena de la anterior.

Me gustaría saber a la hora de Insertar datos si tengo que especificar la ID(clave primaria) o si la rellenará el ACCESS por su cuenta. Os enseñó mí situación para que podais comprender.

T_DATOS{ Id CP INTEGER, Estudios VARCHAR, ...}          T_FORMULARIO{Id CP && Clave Ajena INTEGER, C1 INTEGER, ...}

Código:    (no pongo todo el código para simplificar y no marear)

Crear BASE DE DATOS: en principio esto esta bien, como he dicho falta mucho código, solo presento digamos la partes críticas
/***********************************************************************************/
     cat.Create(con)
     Conectar();
     conexion.Open();
     t = "CREATE TABLE DATOS(Id NUMBER(6) PRIMARY KEY, Edad NUMBER(2), Estudios VARCHAR(20) FOREIGN KEY (Estudios)Reference ESTUDIOS,)";
     comando = new OleDbCommand(t, conexion);
     t = "CREATE TABLE FORMULARIO(Id NUMBER(6) FOREIGN KEY (Id) REFERENCE DATOS ON UPDATE CASCADE ON DELETE CASCADE, C1 NUMBER(1))";
     conexion.Close();
/**********************************************************************************/

INSERTAR: Mí duda esta en esta parte de código
/**********************************************************************************/
String t = "INSERT INTO DATOS VALUES(@" + d.getId() + ",@" + d.getEdad() +")";
            comand = new OleDbCommand(t, conexion);
            t = "INSERT INTO FORMULARIO VALUES(@"+f.getId();
            for (int i = 0; i <= 14; i++) t += f.getRespuesta(i) + ",";
            t += f.getRespuestastring(14) + "," + f.getRespuestastring(15) + ")";
            conexion.Open();
            comand = new OleDbCommand(t, conexion);
            conexion.Close();

/**********************************************************************************/

En este caso que tengo que hacer, introducir el id manualmente, o no presentarlo y lo pone el access solo??

Muchas gracias por vuestra atención

9
MS Access / Re: Numerar mis registros de una consulta
« en: Miércoles 14 de Julio de 2010, 13:32 »
Yo la solución que he visto por ahí es hacer una consulta COUNT a la tabla, recogerla aumentarlo +1 e introducirlo como otro campo de la tabla.

Páginas: [1]