Ir para conteúdo
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 ?

Compartilhar este post


Link para o post
Compartilhar em outros 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 ?

Compartilhar este post


Link para o post
Compartilhar em outros 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?

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

 

 
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por explosivemineyt
      Bom dia,
      Eu encontro-me a tentar realizar um formulário login do tipo google, mas apesar de estar a funcionar, por vezes quando recarrego a pagina aparece assim e tenho que carregar na pagina ou no campo ou outro local qualquer para atualizar.
       
      Gostaria de conseguir corrijir mas apesar de pesquisar não encontro como corrijir.
       
      o meu código html: 
      Meu código css: 
      Meu bootstrap.css(ficheiro muito grande, posso disponibilizar por um drive ou algo do genero) bootstrap versão v4.0.0
       




    • Por Andersonografia
      Gostaria de agradecer o topico do Tonga (topic/436039-resolvido refresh/) pois me esclareceu a criar um método prático para certificar se o form vem do botão ou do F5.
      Vou esclarecer também que só tenho essa necessidade quando o primeiro form do documento é um input, porque na maioria dos meus casos sempre é um search.  
       
      No Value do botão eu coloco o time:
      <button type="submit" name="carga" class="button" value="<?PHP echo $time;?>"> Coloco a condição se estiver setado e se for diferente da sessão:
      if(isset($_POST['carga'])) { $compara = ($_POST['carga']); if($compara != $_SESSION['compara']) { E depois do insert, ainda dentro da condição eu gravo a variável na sessão:
      $_SESSION['compara'] = $compara; Obrigado mais uma vez ao Tonga e ao Forum. Se alguém souber de um método mais prático, por gentileza será muito útil divulgar!!!!
    • Por yeahboy
      Quero que ao clicar em "Enviar consulta", execute um script .php que envie os dados no formulário para um .txt
      Eu mandaria pra db, mas ainda não aprendi, minha ideia com isso é apenas aprendizado em php, com testes locais.

    • Por Julle
      Porquê esse erro estar acontecendo?
       
       
       
      Notice: Undefined index: action in C:\xampp\htdocs\PhpProject1\index.php on line 4
      Nome:  
      Idade:  
      E-mail: 
      sexo:  > Masculino  >Feminino 
      Curso:               > selecione...              > Ciência da Computação                > Bacharelando em Informática              > Engenharia da Computação   
                
      Conhecimento:  >Microdoft Word  >HTML  >JavaScript  >PHP 
       
       
       
      Código: 
      <!DOCTYPE html>
      <?php
          if($_REQUEST["action"] =="save")
          { 
              
              
              $formValid = True;
              
              $tamanho_nome = strlen($_POST["CAMPO_NOME"]);
              if($tamanho_nome < 5|| $tamanho_nome > 64)
              {
                  echo("O campo  'NOME' deve ter entre 5 e 64 caracteres.".$tamanho_nome);
                  $formValid = FALSE;
              }
              
              $idade = (int)$_POST["CAMPO_IDADE"];
              if(is_NaN($idade)|| $idade < 4 || $idade > 120)
              {
                  echo("O campo 'Idade' deve ter preenchido corretamente."); 
                  $formValid = false; 
              }
              $email = $_POST["CAMPO_EMAIL"];
              $regex = 
              "/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/";
              if(!preg_match($regex, $email))
              {
                  echo("O campo 'E-mail' deve ter preenchido corretamente.");
                  $formValid = FALSE;
              }
              $sexo = $_POST["CAMPO_SEXO"];        
              if($sexo != "M" && $sexo != "F")
              {
                  echo("O campo 'sexo' deve ser preenchido.");
                  $formValid = FALSE;
              }
              $curso = $_POST["CAMPO_CURSO"];
              if($curso == "" || $curso == "Selecione . . .")
              {
                  echo("A campo 'curso' deve ser preenchido.");
                  $formValid = FALSE;
              }
              $conhecimento = $_POST["CAMPO_CONHECIMENTO"];
              if(sizeof($conhecimento)!= 2)
              {
                  echo("É necessário marcar 2 conhecimento.");
                  $formValid = FALSE;
              }
              if($formValid)
              {
                  echo("Formulário validado com sucesso");
                  exit();
              }
              
          }
          
        ?>
      <html>
          <head>
              <title>EXEMPLO - formulário</title>
              <script language=" JavaScrip">
              function validaForm()
              {
                  var tamanho_nome = document.forms["meuForm"].CAMPO_NOME.value.length;
                  if(tamanho_nome <5 || tamanho_nome >64)
                  {
                      alert("O campo 'nome' deve ter entre 5 e 64 caracteres");
                      return false;
                  }
                  var idade = document.forms["meuForm"].CAMPO_IDADE.value;
                  if(is_NaN($idade)|| $idade < 4 || $idade > 120)
                  {
                      echo("O campo 'Idade' deve ter preenchido corretamente."); 
                      return false;
                  }
                  var email = document.forms["meuForm"].CAMPO_EMAIL.value;
                  if(email.length<5 || email.length > 128 ||email.index0f(@) = = -1 ||
                  email.index0f('.') == -1){
                      alert("O campo 'Email' deve ter preenchido corretamente.");
                      return false;
                  }
                  var campo_sexo = document.forms["meuForm"].CAMPO_SEXO;
                  var sexo = false; 
                  for(i=0; i<campo_sexo.length;i++){
                      if(campo_sexo.checked == true)
                      {
                          sexo = campo_sexo.value;
                          brack;
                      }
                  }
                  if(sexo == false)
                  {
                      alert("O campo 'sexo' deve ser preenchido.");
                      return false;
                  }
                  var opcao_curso = document.forms["meuForm"].CAMPO_CURSO.selectedIndex;
                  if(opcao_curso == 0)
                  {
                      alert("O campo 'curso' deve ser preenchhido");
                      return false;
                  }
                  var conhecimento = document.forms["meuForm"].elements['CAMPO_CONHECIMENTOS[]'];
                  var conhecimentosMarcados =0;
                  for(i=0; i<conhecimentos.length; i++)
                  {
                      if(conhecimento.checked == true)
                      {
                          conhecimentosMarcados++;
                      }
                  }
                  if(conhecimentosMarcados != 2)
                  {
                      alert("É necessário marcar 2 conhecimento");
                      return false;
                  }
                  document.forms["meuForm"].submit();
                  
              }
              </script>
          </head>
          <body>
              
          <form method="POST" action="?action=save" name="meuForm">
                  
                  Nome:  <input type=TEXT name= "CAMPO_NOME" value=" <? echo $_POST[' CAMPO_NOME'];?>">
              <br>Idade: <input type=TEXT name="CAMPO_IDADE"  value="<? echo $_POST['CAMPO_IDADE'];?>">
              <br>E-mail:<input type=TEXT name="CAMPO_EMAIL"  value="<? echo $_POST['CAMPO_EMAIL'];?>">
              <br>sexo: <input type=RADIO name="CAMPO_SEXO" value="M"
                          <? if($_POST['CAMPO_SEXO']== "M"){echo "checked";}?> > Masculino
                          <input type=RADIO nome="CAMPO_SEXO" value="F"
                          <? if($_POST['CAMPO_SEXO']== "F"){echo "checked";}?> >Feminino
                  
                  
              <br>Curso: <select name= "CAMPO_CURSO">
                  <option <? if($_POST['CAMPO_CURSO']=="selecione . . . ")
                      { echo "selected";}?> > selecione...</option>
                  <option <? if($_POST['CAMPO_CURSO'] == "Ciência da Computação")
                      { eecho "selected";}?> > Ciência da Computação </option>
                  <option <? if($_POST['CAMPO_CURSO']=="Bacharelando em Informática")
                      { echo "selected";}?>  > Bacharelando em Informática</option>
                  <option <? if($_POST['CAMPO_CURSO']== " Engenharia da Computação")
                      {echo "selected";}?> > Engenharia da Computação </option>
              </select>
              
              <br>Conhecimento:
              <input type =checkbox name=CAMPO_CONHECIMENTOS[] value="Word" 
                     <?if(in_aray("Word", $_POST['CAMPO_CONHECIMENTOS[]') != FALSE){echo "checked"; }?> >Microdoft Word
              <input type =checkbox name=CAMPO_CONHECIMENTOS[] value="HTML"
                  <?if(in_aray("HTML",  $_POST['CAMPO_CONHECIMENTOS[]') != FALSE)
                  {echo "checked"; }?> >HTML
              <input type =checkbox name=CAMPO_CONHECIMENTOS[] value="JS"
                   <?if(in_aray("JS",  $_POST['CAMPO_CONHECIMENTOS[]') != FALSE)
                  {echo "checked"; }?> >JavaScript
              <input type =checkbox name=CAMPO_CONHECIMENTOS[] value="PHP"
                   <?if(in_aray("PHP",  $_POST['CAMPO_CONHECIMENTOS[]') != FALSE)
                  {echo "checked"; }?> >PHP
                  
              <br>
              <input type=RESET value="Limpar">
              <input type=BUTTON onClick="validaform();"value="Enviar">
          </form>     
              
                  
                           
          </body>
      </html>
    • Por Luiz091
      Bom dia,
       
      Estou com uma página retornando erro e não consigo corrigir. Sou iniciante em php e até o momento, a dificuldade persiste. Ao enviar a mensagem pelo formulário de contato a página não atualiza e retorna o seguinte erro:
       
      Notice: Undefined variable: message in /storage/ssd3/973/8336973/public_html/inc/sendEmail.php on line 31
      Notice: Undefined variable: error in /storage/ssd3/973/8336973/public_html/inc/sendEmail.php on line 47
      OK
       
       
      Este é o código do fomulário:
      <!-- form --> <form name="contactForm" id="contactForm" method="post" action="sendEmail.php"> <fieldset> <div class="form-field"> <input name="contactName" type="text" id="contactName" placeholder="Name" value="" minlength="2" required=""> </div> <div class="form-field"> <input name="contactEmail" type="email" id="contactEmail" placeholder="Email" value="" required=""> </div> <div class="form-field"> <input name="contactSubject" type="text" id="contactSubject" placeholder="Subject" value=""> </div> <div class="form-field"> <textarea name="contactMessage" id="contactMessage" placeholder="Message" rows="10" cols="50" required=""></textarea> </div> <div class="form-field"> <button class="submitform">Enviar</button> <div id="submit-loader"> <div class="text-loader">Sending...</div> <div class="s-loader"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div> </div> </div> </div> </fieldset> </form> <!-- Form End -->  
      Este é o Php:
      // Replace this with your own email address $siteOwnersEmail = 'user@website.com'; if($_POST) { $name = trim(stripslashes($_POST['contactName'])); $email = trim(stripslashes($_POST['contactEmail'])); $subject = trim(stripslashes($_POST['contactSubject'])); $contact_message = trim(stripslashes($_POST['contactMessage'])); // Check Name if (strlen($name) < 2) { $error['name'] = "Please enter your name."; } // Check Email if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) { $error['email'] = "Please enter a valid email address."; } // Check Message if (strlen($contact_message) < 15) { $error['message'] = "Please enter your message. It should have at least 15 characters."; } // Subject if ($subject == '') { $subject = "Contact Form Submission"; } // Set Message $message .= "Email from: " . $name . "<br />"; $message .= "Email address: " . $email . "<br />"; $message .= "Message: <br />"; $message .= $contact_message; $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />"; // Set From: header $from = $name . " <" . $email . ">"; // Email Headers $headers = "From: " . $from . "\r\n"; $headers .= "Reply-To: ". $email . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; if (!$error) { ini_set("sendmail_from", $siteOwnersEmail); // for windows server $mail = mail($siteOwnersEmail, $subject, $message, $headers); if ($mail) { echo "OK"; } else { echo "Something went wrong. Please try again."; } } # end if - no validation error else { $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null; $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null; $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null; echo $response; } # end if - there was a validation error } ?>  
      Poderiam me ajudar??
       
      O envio funciona, porém apresenta a mensagem de erro e não atualiza a página.
       
      Grato.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.