none
Erro na conexão SQL Server RRS feed

  • Pergunta

  • Olá, preciso de uma ajuda .. fiz uma aplicação windows form VB.net com banco SQL server e ela funciona normalmente em minha máquina, quando compilo e mando pra outro computador em minha rede simplesmente não conecta, gostaria muito de uma ajuda da galera. segue os codigos que estou usando:

    Classe de conexão:

    Imports System.Data.SqlClient
    
    Module Conexao
        
        Public con As New SqlConnection("Server=192.168.0.4,1433;Network Library=DBMSSOCN;Initial Catalog=RHAmanda;Integrated Security=True;")
        
    
        Sub abrir()
            If con.State = 0 Then
                con.Open()
            End If
        End Sub
    
        Sub fechar()
            If con.State = 1 Then
                con.Close()
            End If
        End Sub
    
    
        Public usuarioNome As String
    
    
        Public id_usuario As String
    
    
    
    End Module

    CÓDIGOS USADO NO FORM DE LOGIN 

    Imports System.Data.SqlClient
    
    
    Public Class Login
        Public usuario As String
    
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btn_entrar.Click
    
    
            Dim usuario As String = txt_usuario.Text
            Dim senha As String = TXT_senha.Text
            If usuario = "" Or senha = "" Then
                MsgBox("Campos de usuario ou senha vazio !")
    
            Else
    
    
                Dim cmd As New SqlCommand("login", con)
    
    
    
                Try
                    abrir()
    
                    cmd.CommandType = 4
    
                    With cmd.Parameters
                        .AddWithValue("@usuario", usuario)
                        .AddWithValue("@senha", senha)
                        .Add("@msg", SqlDbType.VarChar, 100).Direction = 2
                        cmd.ExecuteNonQuery()
    
    
                    End With
    
                    usuarioNome = txt_usuario.Text
                    Dim msg As String = cmd.Parameters("@msg").Value.ToString
                    MsgBox(msg, vbInformation)
    
                    If (msg = "Dados Incorretos") Then
    
                        txt_usuario.Clear()
                        TXT_senha.Clear()
                        txt_usuario.Focus()
    
                    Else
                        Dim form = New Home
                        Me.Hide()
                        form.ShowDialog()
                        usuario = txt_usuario.Text
                    End If
                Catch ex As Exception
                    MessageBox.Show("Erro ao excluir dados " + ex.Message)
                    fechar()
                End Try
            End If
    
    
        End Sub
    
        Private Sub clientes_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
            If e.KeyCode = Keys.Escape Then
    
                btSair.PerformClick()
    
            End If
    
        End Sub
    
    
        Private Sub btSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSair.Click
    
            Me.Close()
    
        End Sub
    
    
    End Class

    PROCEDURE USADA NO BANCO 

    create proc [dbo].[login] (
    @usuario varchar(30),
    @senha varchar (10),
    @msg varchar(100) output
    )
    as
    begin
    if(not exists(select*from tb_usuario where nome = @usuario and senha = @senha))
    set
    @msg = 'Dados Incorretos'
    else
    begin
    set
    @msg = 'Bem vindo Sr(a): ' + @usuario
    end
    end

    E A SEGUIR O ERRO QUE DÁ NA OUTRA MÁQUINA:

    AGRADEÇO MUITO QUALQUER AJUDA !



    quinta-feira, 2 de janeiro de 2020 17:32

Respostas

  • Olá Wictor,

    Apenas para filtrar parte do problema, você chegou a liberar no firewall o acesso à porta 1433 na máquina onde está instalado o banco de dados?

    A outra máquina está no mesmo grupo de trabalho ou domínio que a primeira?

    Na máquina onde não conecta, teste o seguinte comando no CMD e verifique se todos os saltos foram realizados com sucesso: tracert XXX.XXX.XXX.XX

    Onde XXX.XXX.XXX.XX é o IP do servidor do banco de dados (acredito que seja o 192.168.0.4 conforme o código acima).

    • Marcado como Resposta WICTOR MENKALHA sexta-feira, 3 de janeiro de 2020 17:06
    sexta-feira, 3 de janeiro de 2020 13:23
  • Quando você usa Integrated Security = True, está usando como usuario o usuário do Windows.

    Ou crie um usuário especifico para acessar o banco e o passe na string de conexao, ou libere permissão para os usuarios do windows acessarem o banco.

    Att

    • Marcado como Resposta WICTOR MENKALHA sexta-feira, 3 de janeiro de 2020 17:06
    sexta-feira, 3 de janeiro de 2020 13:38
  • Olá amigo, 

    O erro informado podem ser algumas coisas como informado já . Porém, o mais provável ao meu ver seja que o Sql Server esteja usando instancia nomeada . 

    Neste caso , você necessita colocar o nome da instancia para uma conexão normalmente no Sql Server ficaria algo como: (xxx.xxx.xxx.xxx/INSTANCENAME). 

    Veja no configuration manager o nome da Instância. 

    Valide como disseram a porta se esta realmente o Banco de Dados escutando na 1433.

    Valide a conexão na porta fazendo um telnet simples na porta 1433 de outra maquina. 

    Valide o Firewall liberado para a porta que o Sql Server esta escutando.

    Valide a permissão do usuário de conexão. 

    Valide se o Sql Server esta configurado para permitir conexões remotas. 

    Estes passos devem ser o suficiente para resolver a questão . 

    Caso não sabia como fazer as verificações ou já tenha feito sem sucesso, nos informe para que possamos ir lhe dando os passo a passo ou pensar nos próximos passos.. 


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    • Marcado como Resposta WICTOR MENKALHA sexta-feira, 3 de janeiro de 2020 17:06
    sexta-feira, 3 de janeiro de 2020 15:49

Todas as Respostas

  • Olá Wictor,

    Apenas para filtrar parte do problema, você chegou a liberar no firewall o acesso à porta 1433 na máquina onde está instalado o banco de dados?

    A outra máquina está no mesmo grupo de trabalho ou domínio que a primeira?

    Na máquina onde não conecta, teste o seguinte comando no CMD e verifique se todos os saltos foram realizados com sucesso: tracert XXX.XXX.XXX.XX

    Onde XXX.XXX.XXX.XX é o IP do servidor do banco de dados (acredito que seja o 192.168.0.4 conforme o código acima).

    • Marcado como Resposta WICTOR MENKALHA sexta-feira, 3 de janeiro de 2020 17:06
    sexta-feira, 3 de janeiro de 2020 13:23
  • Quando você usa Integrated Security = True, está usando como usuario o usuário do Windows.

    Ou crie um usuário especifico para acessar o banco e o passe na string de conexao, ou libere permissão para os usuarios do windows acessarem o banco.

    Att

    • Marcado como Resposta WICTOR MENKALHA sexta-feira, 3 de janeiro de 2020 17:06
    sexta-feira, 3 de janeiro de 2020 13:38
  • Olá amigo, 

    O erro informado podem ser algumas coisas como informado já . Porém, o mais provável ao meu ver seja que o Sql Server esteja usando instancia nomeada . 

    Neste caso , você necessita colocar o nome da instancia para uma conexão normalmente no Sql Server ficaria algo como: (xxx.xxx.xxx.xxx/INSTANCENAME). 

    Veja no configuration manager o nome da Instância. 

    Valide como disseram a porta se esta realmente o Banco de Dados escutando na 1433.

    Valide a conexão na porta fazendo um telnet simples na porta 1433 de outra maquina. 

    Valide o Firewall liberado para a porta que o Sql Server esta escutando.

    Valide a permissão do usuário de conexão. 

    Valide se o Sql Server esta configurado para permitir conexões remotas. 

    Estes passos devem ser o suficiente para resolver a questão . 

    Caso não sabia como fazer as verificações ou já tenha feito sem sucesso, nos informe para que possamos ir lhe dando os passo a passo ou pensar nos próximos passos.. 


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    • Marcado como Resposta WICTOR MENKALHA sexta-feira, 3 de janeiro de 2020 17:06
    sexta-feira, 3 de janeiro de 2020 15:49
  • Amigo muito Obrigado, resolvidíssmo aqui  !
    sexta-feira, 3 de janeiro de 2020 17:07
  • Amigo muito Obrigado, resolvidíssmo aqui  !
    sexta-feira, 3 de janeiro de 2020 17:07
  • Amigo muito Obrigado, resolvidíssmo aqui  !
    sexta-feira, 3 de janeiro de 2020 17:07
  • Victor, 

    Fico muito feliz com o sucesso na questão , mas, diga-nos qual das opções que resolveu a questão?  


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    sexta-feira, 3 de janeiro de 2020 18:32
  • Amigo foi a porta da máquina em que estava o banco e o grupo de trabalho !
    segunda-feira, 6 de janeiro de 2020 14:12
  • Vlw Pelo retorno Wictor , 

    É sempre bom esse feedback para ajudar os próximos. 

    Bom trabalho e se precisar, estamos aqui sempre para ajudar no possível (e as vezes no impossível ) rsrs. 


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    segunda-feira, 6 de janeiro de 2020 14:56
  • Amigo muito Obrigado, resolvidíssmo aqui  !

    Que ótimo!

    Um grande abraço Wictor!

    terça-feira, 7 de janeiro de 2020 11:16