none
COMO CONTROLAR SI UNA TABLA DE BASE DE DATOS SE ENCUENTRA CON DATOS?

    Pregunta

  • HOLA A TODOS, DE ANTEMANO MUCHAS GRACIAS PR LA AAYUDA PRESTADA...

    LA VERDAD ES QUE NO CONOSCO MUCHO DE C#. NET, PERO NECESITO SABER COMO PUEDO CONTROLAR SI UNA TABAL ESTÁ LLENA ES DECIR, QUE TENGA DATOS.

    LA BASE DE DATOS EN LA QUE ESTOY TRABAJANDO ES ORACLE 10G EXPRESS...
    lunes, 30 de noviembre de 2009 21:54

Respuestas

  • hola

    si suas ado.net podrias hacer algo como esto

        using (OracleConnection cnn = new OracleConnection("connection string"))
        {
           
            string sql = "SELECT Count(*) as cantidad FROM Tabla";
           
            OracleCommand cmd = new OracleCommand(sql, cnn);

            int n = Convert.ToInt32(cmd.ExecuteNonQuery());

            if(n == 0)
                MessageBox.Show("NO existen datos en la tabla");
            else
                MessageBox.Show("Hay datos en la tabla");

        }

    como veras es bastante simple, usad los objetos del provider de oracle para .net, y ejecutas la consulta si el count de registros devuelve mas de cero hay registros

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 30 de noviembre de 2009 21:59
  • hola

    deje un articulo en el blog que por ahi te sea de interes

    C# – DataGridView – KeyPress detectar ENTER y busqueda


    por ahi esta un poco precaria la explciacion pero lo interesante es que puedes descargar el ejemplo que arme.

    en este caso busco los datos en memoria de las cuentas, pero por ahi en el tuyo deberias hacer una consulta a la db, filtrando por la cuanta ingresada

    en el ejemplo las cuetas toman los valores simples 1001,1002, 1003, escribe eso en la calda de cuanta cuando editas, y solo te completara al descripcion

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 02 de diciembre de 2009 17:46

Todas las respuestas

  • hola

    si suas ado.net podrias hacer algo como esto

        using (OracleConnection cnn = new OracleConnection("connection string"))
        {
           
            string sql = "SELECT Count(*) as cantidad FROM Tabla";
           
            OracleCommand cmd = new OracleCommand(sql, cnn);

            int n = Convert.ToInt32(cmd.ExecuteNonQuery());

            if(n == 0)
                MessageBox.Show("NO existen datos en la tabla");
            else
                MessageBox.Show("Hay datos en la tabla");

        }

    como veras es bastante simple, usad los objetos del provider de oracle para .net, y ejecutas la consulta si el count de registros devuelve mas de cero hay registros

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 30 de noviembre de 2009 21:59
  • TE AGRADEZCO MUCHO,

    PERO OTRA CONSULTA, APLICANDO ESTAS SENTENCIAS YA NO TENDRÍA QUE UTILIZAR ORACLEDATAREADER...
    lunes, 30 de noviembre de 2009 22:04
  • LEANDRO NECESITO DE TU AYUDA, MIRA ESTOY POR UTILIZAR UN CONTROL DATAGRIDVIEW Y ME ESTOY DANDO CUENTA QUE ES ALGO DIFERENTE EN C# QUE EN VISUAL bASIC

    EN VISUAL BASIC SE USABA ROWS Y COLUM PERO AQUI NO VEO ESO.  SERÁ QUE ME PUEDES AYUDAR CON ALGUN TUTORIAL. POR FAVOR...
    lunes, 30 de noviembre de 2009 23:12
  • hola

    En el caso que solo necesites saber si hay o no registro en tu db, no necesitas usas datareder alguno, como veras en el ejemplo el ExecuteScalar devuelve un valor directo de la funcion  de agregacion Count() ejecutada en la consulta sql a la db.
    como has observado se ahorra el uso de un objeto o sea el datareader, se obtiene el valor directamente.




    - con respecto al datagridview, dices que es diferente, a la de visual basic, pero que visual basic VB6 o VB.NET, si es VB.NET es exactametne la misma grilla no ha cambiado en nada

    para definir las columnas, en el formulario en tiempo de diseño has click derecho, y en el menu desplegable seelcciona la opcion Edit Columns
    allí podras agregar la definicion de las columnas que necesitas mostrar.
    me refiero a que deberías visualizar algo similar a este imagen

    pero algunos consejos, no te olvides de especificar la propiedad DataPropertyName
    en esta debes escribir el nombre del campo de tu origen de datos, que vas a bindear en la grilla.
    O sea si al DataSource de la grilla le especicas un datatable y este tiene un campo de nombre "idcliente" , es mismo nombre debes poner en la definición de la columna en la propiedad DataPropertyName, para que sepa como enlazarla

    ademas recuerda poner la propiedad AutoGenerateColumns
    en false, así solo toma las columnas que defines en tiempo de diseño


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 01 de diciembre de 2009 0:39
  • ok gracias, pero en el caso de no usar un data table sino que desee cargar el datagrit de forma manual, me puedes explicar por favro como deberia hacerlo, claro esta que una ves cargado lo debo guardar en la base de datos...


    mas o menos el grid que tengo es asi.

            cod.Cta       descripcion     detalle      debe   haber
    1
    2
    3
    4
    5

    entonces lo que no entiendo como hacer es por ejemplo : al digitar en una celda del campo de "codctas" y doy enter y automaticamente aparezca su descripción, solo eso y como sumar todo los campos de debe y haber por separado...

    No sé si me hize entender con el dilema que tengo y esto es un proyecto universitario mio, pero mencioné si es que tenian un manual o tutorial.

    por favor necesito de ayuda...


    miércoles, 02 de diciembre de 2009 0:55
  • Este link te puede ayudar.

    http://support.microsoft.com/default.aspx/kb/310101

    En el ejemplo esta hecho con OleDb. Para oracle es lo mismo pero solo que con las clases de Oracle.

    La idea es llenar un datatable con la informacion y luego se asigna ese datatable.

    datagridview1.DataSource = datatable;

    Un ejemplo completo seria algo asi:

    OracleConnection cn = new OracleConnection("stringdeconexion");
    OracleDataAdapter da = new OracleDataAdapter("select codigo, descripcion, detalle, debe haber from tabla", cn);
    DataTable tabla = new DataTable();

    da.Fill(tabla);

    datagridview1.DataSource = tabla;

    Espero que te sirva

    Saludos

    Sparow
    miércoles, 02 de diciembre de 2009 2:03
  • HOLA, GRACIAS POR LA AYUDA, PERO CREO QUE TAL VES NO ME HIZE ENTENDER.

    VERAN, EN EL DATAGRIDVIEW, EN EL CAMPO DE CODCTAS, INGRESO LA CUENTA Y AUTOMATICAMENTE ME DEBE APARECER SU DESCRIPCION Y LA MISMA INFORMACION QUE SE ENCUENTRA EN EL GRID PASARLA A LA BASE DE DATOS...

    miércoles, 02 de diciembre de 2009 2:21
  • hola

    pero me queda un duda la consulta era saber si una tabla tenia registro, o como cargar una tabla en el datagridview ?

    bueno el tema de bindear los datos de una consulta a la grilla Sparow ya lo ha contestado

    con respecto a sumar las columnas podrías hacer

    decimal debe, haber;

    foreach(DataGridViewRow row in DataGridView1.Rows)
    {
         debe += Convert.ToDecimal(row.Cells["debe"].Value);
         haber += Convert.ToDecimal( row.Cells["haber"].Value);
    }

    esto podrías luego mostrarlo en textbox por ejemplo

    txtDebe.Text = Convert.ToString(debe);
    txtHaber.Text = Convert.ToString(haber);



    ahora bien con respecto a buscar cuando se tipea en una celda por ahí es algo mas complejo ya que en este caso

    deberias realziar algo similar a lo que muestre este link


    como ver la clave esta detectar el evento keypress de la celda y poder capturar el ENTER, seria en ese momento en donde deberas realizar una consulta a la db filtrando por el valor ingresado por el usuario en la celda y recuperar la descripción


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 02 de diciembre de 2009 2:36
  • LA VERDAD ES QUE ESTOY TRATANNDO DE INTERPRETAR ESTOS CODIGOS Y NO LOGRO HACERLO, POR SI ACASO NO TIENS ALGO MAS SENCILLO
    miércoles, 02 de diciembre de 2009 3:07
  • hola

    El tema es que la tarea que necesitas hacer no es simple de por si, pero por ahi si la divides en partes asi no te sientes frustado

    por ahi primero podria preguntarte si ahs podido cargar en la grilla los datos de la tabla ?

    esa parte es la principal, has podido lograrlo
    como te explica Sparow, haciendo un select a la db oracle, cargando un dataset y por ultimo bindeando los datos a la grilla

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 02 de diciembre de 2009 3:35
  • como cargar los datos de una tabla de DB si lo puedo hacer
    pero el punto es que necesito es:

    cuando digito un numero de cuenta en codctas su respectiva descripcion me aparezca en la celda de a lado y el resto de los campos los lleno manualmente es como hacer el dinamismo entre esa dos columnas del grid o grilla...

    no sé si me he hecho entender....


    es como el tipico comprobante contable bueno aca en ecuador es tipico asi, no sé como se en tu pais....


    gracias.
    miércoles, 02 de diciembre de 2009 3:42
  • Hola, puedes hacer que en el evento CellChanged, si estás en la celda de la cuenta, tengas un metodo para buscar la descripción.
    Mi Blog: Jtorrecilla
    miércoles, 02 de diciembre de 2009 6:56
    Moderador
  • hola

    deje un articulo en el blog que por ahi te sea de interes

    C# – DataGridView – KeyPress detectar ENTER y busqueda


    por ahi esta un poco precaria la explciacion pero lo interesante es que puedes descargar el ejemplo que arme.

    en este caso busco los datos en memoria de las cuentas, pero por ahi en el tuyo deberias hacer una consulta a la db, filtrando por la cuanta ingresada

    en el ejemplo las cuetas toman los valores simples 1001,1002, 1003, escribe eso en la calda de cuanta cuando editas, y solo te completara al descripcion

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 02 de diciembre de 2009 17:46
  • LEANDRO SERA QUE ME PUEDAS AYUDAR CON UNA VERSION 2005
     PORQUE NO HE TENIDO TIEMPO EN INSTALAR LA VERSION 2008

    jueves, 03 de diciembre de 2009 0:22