none
Como criar um Form de Conexão para o Banco de Dados - Gerenciamento de Alias RRS feed

  • Discussão Geral

  • Olá Pessoal!

    Como vão?

    Respeitosamente, venho aqui acessar esse forum, pois sou novo em desenvolvimento e me encontro em um problema na qual tenho que resolver. Peço encarecidamente a ajuda dos nobres colegas.

    Primeiro vou contar toda as historia do meu desenvolvimento:

    Criei uma aplicação em VB.NET com uma strig de conexão com o meu banco de dados em SQL, que está definida no app.config

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration>

        <configSections>

        </configSections>

        <connectionStrings>

            <add name="SYS_MANAGMENT_ERP.My.MySettings.BD_ERPConnectionString"

                        

                connectionString="Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=BD_GESTAO;Integrated Security=True"

                

                providerName="System.Data.SqlClient" />

        </connectionStrings>

        <startup>

            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

        </startup>

    </configuration>

    Para todos os formulários da minha aplicação criei diversas public sub para carregar os dados do banco no Datagrid, combobox, form_load da minha aplicação.... Até ai, está tudo funcionando muito bem, veja um pequeno trecho do código que está em cada form.

    Imports System.Data

    Imports System.Data.SqlClient

    Imports System.IO

    Imports MetroFramework.Forms

    Public Class FormCadastroClientes

        Dim Strcon As String = My.Settings.BD_ERPConnectionString.ToString

        Dim conn As SqlConnection

        Dim cmd As SqlCommand

        Dim da As SqlDataAdapter

        Public Sub loadData()

            conn = New SqlConnection(Strcon)

            conn.Open()

            Dim str As String = "SELECT

                                IDCLIENTE AS [Id Cliente],

                                NOMERAZAO AS [Nome do Cliente]

                                FROM

                                       CLIENTES

                                ORDER BY

                                       NOMERAZAO ASC"

            da = New SqlDataAdapter(str, conn)

            Dim ds As New DataSet

            da.Fill(ds, "CLIENTES")

            dgvAgenda.DataSource = ds.Tables("CLIENTES")

            da.Dispose()

            conn.Close()

        End Sub

    End Class

    Ao final, criei um executável da minha aplicação no visual studio no nas propriedades do meu projeto à publish à publish wizard

    Agora, tenho que instalar essa aplicação em todas as maquinas da empresa e fazer a conexão com o banco de dados que está em um servidor dedicado chamado “DATA_SERVER”.

    O Meu maior problema é, eu não sei desenvolver uma tela para definir a conexão com o banco de dados para que todas as estações possam ser configuradas o caminho para o banco de dados. Dessa forma não precisarei deixar a string de conexão com o servidor fixada no meu código, mesmo porque, fiz um teste e eu só consigo conectar apenas uma estação no banco, quando eu instalo a aplicação em outra máquina ela dá esse erro:

    A Orientação que eu preciso:

    Bom... por favor, me ajude, como eu consigo criar uma aplicação na qual eu tenho um form para definir o alias do meu banco de dados, para quando o usuário for se conectar, defina apenas uma vez o alias de conexão e tenha acesso ao sistema, tipo igual a TOTVS como o print abaixo:

    Então os dados da conexão já fica salva para o usuário e dessa forma eu não venho a ter problema com conexão de banco de dados, pois se também o servidor mudar, terei que gerar um novo exe pois o nome do servidor está definida na minha string de conexão.

    Alguém tem algum videio, tutorial que ensina passo a passo como desenvolver e deixar salvo os dados do alias ?

    quinta-feira, 1 de fevereiro de 2018 20:41

Todas as Respostas

  • Boa tarde. Tudo bem?

    Obrigado por usar o fórum MSDN.


    Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 2 de fevereiro de 2018 16:59
    Moderador
  • Olá Felipe!

    Não entendi a sua pergunta.

    A unica coisa que eu preciso criar é um form para conectar o meu sistema com o banco de dados na rede.

    Esse form vai deixar registrado o caminho para o servidor do banco de dados, dessa forma não terei que ficar editando a string de conexão e gerando um novo exe para que a aplicação conecte-se ao banco de dados.

    valeu pela resposta.

    segunda-feira, 5 de fevereiro de 2018 16:56
  • Você fazendo diretamente pelo appConfig amigo a aplicação acaba se tornando dependente do banco de dados! Então se você criar uma classe para a conexão do banco de dados poderá ficar mais fácil a manutenção futuramente.
    sexta-feira, 16 de fevereiro de 2018 10:38
  • Boa tarde, Pessoal!

    Amigos, deu tudo certo, irei postar passo a passo o que eu fiz até mesmo para contribuir para aqueles que precisão da mesma solução.

    Feito em C#

    1º Passo: Criei uma classe em C# chamada de "Conexao.cs"

    2º Passo: No App.config, criei as propriedades de conexão, para que fiquem gravadas no "Properties.Settings"

    3º Passo: Criei um formulário "windowsform" para o usuário digitar o ip ou nome do servidor e a base de dados, de modo que teste a conexão com o banco.

    Ainda, não terminei de implementar os demais campos, mas daí por diante já tem um norte .

    Tela:

    Código do formulário:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Security;
    using System.Data.SqlClient;

    namespace sistema
    {
        public partial class FrmGerenciamentoDeAlias : Form
        {
            //Istancias ************************************************************************************************
            Conexao conexao = new Conexao();
            SqlCommand cmd = new SqlCommand();
            public String mensagem; //Criei a variavel de mensagem para guardar a mensagem de erro ou sucesso de conexao ao banco

            public FrmGerenciamentoDeAlias()
            {
                InitializeComponent();
            }

            //Metodo para carregar os dados no Datagrid ***************************************************************
            public void ListaGridTeste()
            {  
                try
                {
                    conexao.Conectar();
                    SqlCommand cmd =  new SqlCommand("SELECT top 1 RA, NOMEDISC, CODTURMA FROM tabela  WHERE CODPERLET = '2019' AND CODFILIAL = '7'", conexao.Conectar());
                    SqlDataAdapter sda = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
                    DtgTeste.DataSource = dt;
                }
                catch (Exception ex)
                {
                   MessageBox.Show("Erro: " + ex.Message); 
                }
            }//******************************** Termino do Metodo ****************************************************************


            //Aqui Crei um Metodo para Salvar os Dados da Conexao no Settings ******************************************************
            public void SalvaDados()
            {
                try
                {
                    if (txtCaminhoDoBD.Text == "" || txtNomeDoBanco.Text == "")
                    {
                        MessageBox.Show("Por favor, digite corretamente o IP ou Nome do Servidor de Banco de Dados");
                    }

                    Properties.Settings.Default.ConexaoBanco = txtCaminhoDoBD.Text;
                    Properties.Settings.Default.NomeDoBanco = txtNomeDoBanco.Text;
                    Properties.Settings.Default.Save();
                    Properties.Settings.Default.Reload();
                   
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    throw;
                }
            }//******************************** Termino do Metodo ****************************************************************
            

            private void FrmGerenciamentoDeAlias_Load(object sender, EventArgs e)
            {
            }

            private void btnTestarConexao_Click(object sender, EventArgs e)
            {
                
                try
                {
                    //Properties.Settings.Default.Reset();
                    //SalvaDados(); //Aqui o Chamei o Metodo que criei no inicio do projeto
                    conexao.Conectar();
                    MessageBox.Show("Conexao Realizada com Sucesso!");
                }
                catch (Exception error)
                {
                    MessageBox.Show("Não foi possível conectar:" + error.Message);
                    Application.Exit();

                }
            }

            private void btnSalvar_Click(object sender, EventArgs e)
            {
                SalvaDados(); //Aqui o Chamei o Metodo que criei no inicio do projeto
                MessageBox.Show("As informações do Banco de Dados foram salvas!");
            }

            private void btnFechar_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }

            private void btnCarregaDados_Click(object sender, EventArgs e)
            {
                ListaGridTeste();
            }
        }
    }

    Agradeço os amigos da comunidade pela ajuda.

    abs

    terça-feira, 16 de julho de 2019 14:27