Jump to content
Rui PG

Criar um form para Cadastrar o Banco de Dados e o servidor - Gereciamento de Alias.

Recommended Posts

Olá amigos!

 

Venho aqui neste forum com o maior respeito, sou novo em desenvolvimento e estou precisando de uma grande ajuda e orientação.

Como eu crio um form para cadastrar o banco de dados e o servidor para quando for instalar minha aplicação em outras estacoes de trabalho, eu tenha a opção de apontar onde o meu banco de dados está.

 

abaixo segue um resumo do que eu fiz e o que estou passando

 

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:

 

image.png.ac2a60cd01982a6efa51e665060c8c1a.png

 

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:

ideia.jpg.0485e6bbcb6b79894988bf977cc2dd28.jpg

 

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 ?

Share this post


Link to post
Share on other sites

Tem algo que não entendi muito bem. Todas as máquinas que forem usar sua aplicação vou conectar no mesmo banco de dados (mesmo servidor) certo ? Se for desta forma basta você definir na sua conexão um servidor sql server que todas as máquinas tenha acesso.

 

Você realmente precisa de uma tela pra definir a conexão com o banco ?

Share this post


Link to post
Share on other sites

Olá Quitelab, muito obrigado pelo retorno.

 

Sim.. toas as estacoes vão utilizar o acesso ao mesmo servidor onde estará o banco de dados.

 

Preciso desenvolver um form para definir o alias de conexão e banco de dados, pois caso o servidor mude, os usuários definam apenas o servidor e o alias.

 

ok?

Share this post


Link to post
Share on other sites

Bom dia Rui,


Não sei se isso realmente possa te ajudar mas no meu sistema para ficar mais facil para trabalhar em casa e no trabalho, eu deixei um dropdown list com as opções  de "trabalho" e "home" ao acessar o sistema eu seleciono se no drop a opção, no codigo é bem simples, eu verifico qual opção esta selecionar e dependendo da opção eu seto a conexão que será utilizada.

Share this post


Link to post
Share on other sites

Rafael, muito obrigado pela atenção.

Conseguei resolver o problema, irei postar abaixo os passo a passo, para que outras pessoas que estejam com o mesmo problema possam resolver.

 

- No Settings do meu Projeto criei duas string de conexão:

ConexaãoBanco --> Type: String --> Scope: User --> Value: deixei em branco

NomeDoBanco --> Type: String --> Scope: User --> Value: deixei em branco

 

- Criei um "Module" no meu projeto, com o código abaixo, e concatenei as strings do settings 

Imports System.Data
Imports System.Data.SqlClient

Module modConexao
    Public Function GetConnection() As SqlConnection

        Dim sql As String = "Data Source=" & My.Settings.ConexaoBanco & ";Initial Catalog=" & My.Settings.NomeDoBanco & ";User ID=sa;Password=masterkey"
        'Dim sql As String = "Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=BD_ERP;Integrated Security=True"
        'Dim sql As String = "Data Source=MARC_SERVER;Initial Catalog=BD_ERP;Integrated Security=True"
        Return New SqlConnection(sql)

    End Function

 

- Em todas os Form do meu projeto eu chamo a conexão com a seguinte estrutura:

 

 Using conn As SqlConnection = GetConnection()

            Try
                conn.Open()
               

<< seu codigo aqui >>

 

            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                da.Dispose()
                If conn IsNot Nothing AndAlso conn.State = ConnectionState.Open Then
                    conn.Close()
                End If
            End Try

        End Using

 

- Criei um formulário para que o usuário Digite o nome do Servidor ou IP da maquina onde está o banco de dados e, em seguida o nome do banco de dados.

 

Public Class FormConectaBancoDeDados
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim open As New OpenFileDialog

        If open.ShowDialog = Windows.Forms.DialogResult.OK Then
            txtCaminho.Text = open.FileName
        End If

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Application.Exit()

    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        Try
            If txtCaminho.Text = "" Then
                MsgBox("Por favor digite corretamente o caminho do servidor onde está o banco de dados")
                Exit Sub

            End If

            My.Settings.ConexaoBanco = txtCaminho.Text
            My.Settings.NomeDoBanco = txtNomeDoBanco.Text
            My.Settings.Save()
            My.Settings.Reload()


        Catch ex As Exception
            MsgBox(ex.Message)

        Finally

            Me.Dispose()
            Form1.ShowDialog()
        End Try

    End Sub

 

 
 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Alberto Nascimento
      Como faço que consiga colocar parágrafos no campo tipo "text" do formulário?
          <input name="Text1" style="width: 528px; height: 223px" type="text" /></form>
      Se eu pressiono ENTER automaticamente envia o formulário
      Como então consigo digitar ao preencher o formulário da forma abaixo?
       
    • By AndersonVSilva
      Bom dia Pessoal,
       
      Efetuei uma busca no forum e não encontrei alguma solução para meu problema.
       
      Tenho este form via HTML:
       
      <td><form id="form1" action="CallProc02.php" method="post"><input type="hidden" name="id" value="1" /></form></td> <td><input form="form1" type="text" name="DDDA" value="Ex: 75" /></td> <td><input form="form1" type="text" name="NumA" value="Ex: 982825441" /></td> <td><input form="form1" type="text" name="DtInit" value="Ex: 2018-01-01" /></td> <td><input form="form1" type="text" name="DtEnd" value="Ex: 2019-01-01" /></td> <td><input form="form1" type="submit" value="Enviar" /></td> E aqui está o código PHP:
      <?php $sDDDA = $_POST['DDDA']; $sNumA = $_POST['NumA']; $sDtInit = $_POST['DtInit']; $sDtEnd = $_POST['DtEnd']; $con = new PDO("mysql:host:IP;dbname=DB", "User", "Pass"); $stmt = $con->prepare("CALL NOC_cobranca_conecta_historico_msisdn(:qDDDA, :qNumA, :qDtInit, :qDtEnd) "); $stmt->bindParam(":qDDDA", $sDDDA, PDO::PARAM_STR, 3); $stmt->bindParam(":qNumA", $sNumA, PDO::PARAM_STR, 10); $stmt->bindParam(":qDtInit", $sDtInit, PDO::PARAM_STR, 12); $stmt->bindParam(":qDtEnd", $sDtEnd, PDO::PARAM_STR, 12); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($result) { echo "OK"; } else { echo "NOK - Report Development Team"; } ?> No Apache ele fica logando o erro ' PHP Notice:  Undefined index: NumA in /var/www/html/Consulta/CallProc02.php' .
       
      Alguém pode me dizer oque estou fazendo errado?
       
      Obrigado desde já pela ajuda.
    • By asacap1000
      Salve Galera!!
      Estou com um problema que acredito que seja muito facil mas não estou conseguindo colocar no código.
       
      Tenho um formulário simples onde temos apenas um campo a ser preenchido, input file.
      estarei utilizando ele no celular para fotos de processos de conferência. O que preciso é que assim que constar dados no campo ele automaticamente executa o form para salvar.
      segue script;
       
      <form name="form" id="form"class="form-horizontal" action="" method="post"> <div class="form-group form-group-lg"> <div class="col-sm-12"> <input id="foto" name="foto" hidden="1" value="<?=$prot_foto?>" type="text" maxlength="200" > <input id="lote" name="lote" hidden="1" value="<?=$lote?>" type="text" maxlength="200" > <label for='selecaoarquivo' ><figure><svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="50" height="40" viewBox="0 0 512.000000 392.000000" preserveAspectRatio="xMidYMid meet"> <g transform="translate(0.000000,392.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none"> <path d="M1970 3073 l-151 -163 681 0 682 0 -19 24 c-10 14 -70 85 -133 160 l-115 134 -397 4 -397 3 -151 -162z m710 17 l0 -60 -190 0 -190 0 0 60 0 60 190 0 190 0 0 -60z"/> <path d="M3370 3005 l0 -95 240 0 240 0 0 95 0 95 -240 0 -240 0 0 -95z"/> <path d="M1154 2955 l-1 -45 224 0 223 0 0 45 0 45 -222 0 -223 0 -1 -45z"/> <path d="M1105 2829 c-114 -19 -200 -64 -266 -137 -85 -94 -116 -191 -126 -384 l-6 -128 713 0 713 0 72 68 c122 117 239 184 386 223 69 19 109 23 224 22 121 0 152 -4 228 -27 48 -14 118 -42 156 -61 78 -39 205 -137 248 -189 l28 -36 433 0 432 0 0 118 c0 123 -20 234 -56 304 -47 94 -138 168 -254 210 l-65 23 -1405 1 c-773 1 -1427 -2 -1455 -7z"/> <path d="M2715 2207 c-212 -23 -436 -233 -475 -446 -14 -78 -12 -196 5 -270 43 -181 197 -344 384 -408 52 -18 89 -23 171 -23 179 0 297 47 415 165 116 115 175 256 175 415 0 232 -158 458 -378 540 -68 26 -200 38 -297 27z"/> <path d="M712 1528 c5 -611 5 -613 63 -728 52 -102 125 -163 251 -207 l79 -28 1420 0 c1350 0 1423 1 1480 18 177 55 271 151 315 321 19 75 20 110 20 633 l0 553 -396 0 c-218 0 -394 -3 -392 -7 2 -5 15 -30 29 -58 54 -102 81 -210 86 -346 11 -261 -69 -472 -249 -651 -309 -311 -799 -341 -1140 -70 -167 133 -273 303 -314 503 -13 64 -15 114 -11 219 6 150 24 224 83 343 l34 67 -681 0 -680 0 3 -562z"/> </g> </svg></figure><h4>TIRAR FOTO</h4></label> <input type="file" id="selecaoarquivo" class="btn btn-danger" name="image[]" accept="image/*" capture="camera"> </div> </div><br> <p><br> <p> <button name="Cadastrar" id="cadastrar" value="Cadastrar" class="btn btn-success " type="Submit" onclick="javascript:document.getElementById('blanket').style.display = 'block';document.getElementById('aguarde').style.display = 'block';"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="25" viewBox="0 0 20 17"><path d="M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"/></svg><h4>SALVAR FOTO</h4></button> </form> Se puderem me dar uma força nisso agradeço imensamente!!!
       
    • By fjuniorlira
      Pessoal estou construindo essa página: http://webe.cf/teste-cadastro Preciso que que no input "Conta" o dígito fique na mesma linha. Como posso fazer isso?
      SEGUE O CÓDIGO:
       
      <p> <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;">Conta:</span></big> <span style="color: rgb(255, 0, 0); font-weight: bold;">*</span><br/> <input type="text" required="required" size="35" name="conta" onkeypress="formatar('####-#', this)" pattern="[0-9.-]+$" maxlength="9" style="width: 300px; height: auto; font-family: Arial; font-size: 16px"> </p> <p> <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;"></span></span> <input type="text" required="required" size="35" name="digito" onkeypress="formatar('####-#', this)" pattern="[0-9.-]+$" maxlength="9" style="width: 39px; height: auto; font-family: Arial; font-size: 16px"> </p>  
    • By Rafaeloliveiraz
      Olá pessoal,
       
      Eu estou tentando criar uma variavel para fazer um checker no conteúdo do input de um form antes de realizar o envio... Por exemplo SE o conteúdo do campo começar com "http://facebook.com/..." ele faz o envio normalmente, porém caso o começo seja OUTRO preciso que substituia o valor preenchido por um valor padrão e ai realize o envio.
       
      Acredito que com if e else resolva meu problema, eu até criei o bloqueio para que o conteúdo não seja enviado se for diferente mas por algum motivo ele só está funcionando se a pessoa tentar enviar uma segunda vez, como se o bloquei só funcionasse após a pessoa realizar o primeiro envio, então acabei desativando. O códito está somente assim agora:
       
       
      <form action="" id="shortForm" method="post"> <div> <input type="text" name="url" id="url" size="60" value="http://" onfocus="clearText(this)" class="input round-left" /> <button class="input button round-right" id="create">Encurtar URL</button> </div> </form>  
       
      Este form é para um encurtador de URL, onde eu quero que somente URLs do meu site sejam encurtadas, e caso alguém utilize uma URL para outro site preciso que o form altere o link dessa pessoa para outro padrão sem que ela saiba...
       
      Eu até montei a função mas não estou sabendo como posso mesclar com o input do form:
       
      <!DOCTYPE html> <html> <body> <p>Mudar conteúdo de envio</p> <input id="url" type="text"> <button onclick="myFunction()">Encurtar</button> <p id="envio"></p> <script> function myFunction() { var link = document.getElementById("url").value; var text; // Se a URL estiver certa if (link === "http://meusite.com/...") { input = "Enviado sem alterações"; // Se a url for outra } else { input = "http://urlcorreta.com"; } document.getElementById("envio").innerHTML = input; } </script> </body> </html>  
      Alguém poderia me dizer se isso poderia funcionar e como eu deveria seguir para mesclar ambos?
       
      Obrigado.
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.