none
Como faço para alterar a base de banco de dados do meu portal desenvolvido em C#? RRS feed

  • Pergunta

  • Estou com um portal desenvolvido em C# que é "alimentado" por um banco de dados em Sql server. Eu criei uma outra base de dados com um nome diferente, que agora deve "alimentar" as informações do meu portal. Como faço para o meu código em C# reconhecer a minha nova base de dados e exibir as informações que eu preciso?
    quinta-feira, 12 de dezembro de 2019 16:28

Todas as Respostas

  • Ana_Miguel,

        Você precisa apontar de sua base de dados antiga para a nova base de dados, dependendo do que você fez, basta trocar o onme do caminho. Exemplo:

    =============================================
    C# SQL Server Connection 

    using System;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                string connetionString = null;
                SqlConnection cnn ;
    			connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password"
                cnn = new SqlConnection(connetionString);
                try
                {
                    cnn.Open();
                    MessageBox.Show ("Connection Open ! ");
                    cnn.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Can not open connection ! ");
                }
            }
        }
    }

    http://csharp.net-informations.com/data-providers/csharp-sql-server-connection.htm
    =============================================
    Preciso de trocar o meu servidor de SQL 2008 para outro dominio 

    https://social.technet.microsoft.com/Forums/pt-BR/86cce399-46ac-4bb5-9540-3c986f383657/preciso-de-trocar-o-meu-servidor-de-sql-2008-para-outro-dominio
    =============================================


    []'s,
    Fabio I.
    quinta-feira, 12 de dezembro de 2019 17:26
  • Oi Fábio, então é simples assim? Apenas trocar o nome da base de dados no meu arquivo web.config? Não corro algum risco de meu portal de alguma forma "recusar" essa base de dados?
    quinta-feira, 12 de dezembro de 2019 17:47
  • Ana_Miguel,

       Não é tão simples. Pode recusar por vários motivos. Exemplos:

       1 - As tabelas tem estruturas ou nomes diferentes;
       2 - Você está usando "Code First";
       3 - Você não tem a senha ou acesso a nova estrutura em outro Banco de dados;

       etc...

    []'s,
    Fabio I.
    • Editado Fabio I quinta-feira, 12 de dezembro de 2019 18:07
    quinta-feira, 12 de dezembro de 2019 18:03
  • Sim, você tem toda a razão. Comecei a ter problemas com as minhas tabelas. Resumidamente, recriei todos os dados da minha antiga base, no caso, tabelas, procedures e view, na minha nova base de dados. Porém, agora estou tentando logar no meu portal e está apontando um erro na minha tabela de permissões (no caso os usuários do portal), dizendo que a minha coluna ID não aceita valores nulos. Já tentei alterar a estrutura da tabela que está apresentando erro, porém não funciona. 

    quinta-feira, 12 de dezembro de 2019 18:51
  • Ana_Miguel,

        A coluna "ID" geralmente é Chave Primária (PK) e serve para identifica um e somente um registro. Não pode estar nula e nem ter valores duplicados.

    []'s,
    Fabio I.
    sexta-feira, 13 de dezembro de 2019 09:46
  • É exatamente o erro que estou tendo. Qual a melhor maneira pra eu corrigir esse problema? Já tentei recriar a tabela novamente alterando algumas propriedades, mas nem uma das tratativas que tentei funcionou. 

    sexta-feira, 13 de dezembro de 2019 12:29
  • Ana_Miguel,

       Você precisa GARANTIR que ANTES de disparar essa instrução, o número de ID que será passado esteja:

       1 - Preenchido (não pode ser NULL ou vazio);
       2 - O Número do ID NÃO existe na tabela;

       Se uma ou as duas opções acima forem verdadeira(s), então é preciso apresentar uma mensagem de erro e pedir providências do usuário / operador.

       Para te ajudar a fazer isso você pode usar essas dicas:

    =======================================
    String.IsNullOrEmpty(String) Método

    https://docs.microsoft.com/pt-br/dotnet/api/system.string.isnullorempty?view=netframework-4.8
    =======================================
    C# - IsNullOrEmpty ou IsNullOrWhiteSpace ?

       - O que é uma cadeia de caracteres nula?
       - O que é uma cadeia de caracteres vazia?

    http://www.macoratti.net/17/06/cshp_Isnull1.htm
    =======================================
    Verificar se o registro já existe no banco de dados

    https://social.msdn.microsoft.com/Forums/pt-BR/57e5514d-ac5f-408c-9c6d-eb35f88c6348/verificar-se-o-registro-j-existe-no-banco-de-dados   
    =======================================
    Como verificar se existe determinado ID no banco de dados?

    int resultEstado = int.TryParse(campos[7], out estado); 
    registro["Estado"] = estado;
    
    if(!resultEstado) 
    { 
        Label3.Visible = true; 
        Label3.Text = "Campo Codigo Estado não esta vindo como valor inteiro"; 
    }
    else
    {
        //abre conexao com o banco
        //faz a operação com o banco passando o campo 
        //id registro["Estado"]
    
        if(dr.HasRows())
        {
            Label3.Visible = true; 
            Label3.Text = "Campo Codigo Estado já existente no banco de dados"; 
    
        }
        else
        {
            // faz o insert
        }
    }

    https://pt.stackoverflow.com/questions/32918/como-verificar-se-existe-determinado-id-no-banco-de-dados
    =======================================

    []'s,
    Fabio I.
    sexta-feira, 13 de dezembro de 2019 15:21