คำตอบที่เสนอ Verificar se um campo,em uma tabela MySql existe com C#

  • 21 กรกฎาคม 2555 3:09
     
     

    Estou desenvolvento um pequeno sistema em C#, usando banco de dados MySql. Algumas tabelas de meu banco de dados, estão sendo alteradas durante o desenvolvimento. Neste caso, estou acrecentando campos a determinadas tabelas.  O meu problema é que atualmente o programa ja está sendo usado por clientes. Gostaria de poder acrecentar estes campos, com as atualizações.

    Preciso de uma idéia de como verificar todos os campos e no caso, acrecentar o que a tabela não possui dinamicamente, sem ter que mecher na base de dados dos clientes.
    Desde ja agradeço!

ตอบทั้งหมด

  • 22 กรกฎาคม 2555 13:05
    ผู้ดูแล
     
     คำตอบที่เสนอ มีโค้ด

    Olá Carvalho,

    Neste caso, o que eu faria, seria criar uma rotina de consultas que capture apenas o primeiro registro de cada tabela e retorne todas as colunas em um DataTable. Desta forma, depois de ter todos os dados das colunas no DataTable, vc pode navegar por dentre as colunas e verificar se elas existem. E se não existirem vc executar rotinas de adição das mesmas na tabelas, algo como o código abaixo:

    DataTable currentData = ExecuteConnectionToGetData();
                
    if (!currentData.Columns.Contains("Coluna01"))
    {
        // Executar comandos para criar esta coluna
    }
    if (!currentData.Columns.Contains("Coluna02"))
    {
        // Executar comandos para criar esta coluna
    }

    []s!

    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

  • 26 กรกฎาคม 2555 14:35
     
      มีโค้ด

    Bom dia.

    Uma boa idéia que surgiu nos ultimos tempos com o Rails, é o Migrations. Você controla a mudança do seu banco de dados pela aplicação, a versão 4.3 do EF já possui.

    Se vc quer só verificar as colunas, executa isto que irá retornar as colunas pra vc.

    SHOW COLUMNS FROM Tabela;