CONECTAR DA ERRO

MOUSER 23/05/2022 21:38:16
#499939
Pessoal, estou tendo problema ao conectar, pois o nome do banco esta certo, a senha e usuario super administrador esta correto, mas mesmo assim esta dando erro. Alguem pode me dar uma foça?

Citação:

StringConexao As String = "Server=.;Database=dbKoala;user id=sa;pwd=123456789"
Private Function AbreBanco() As SqlConnection
Dim Conn As New SqlConnection
With Conn
.ConnectionString = StringConexao
.Open()
End With
Return Conn
End Function
Public Function ListaUsuario(ByVal Usuario As String) As SqlDataReader
Dim strQuery As New StringBuilder

With strQuery
.Append("Select Usuario From t_Login Where Usuario like ("" & Usuario & "");")

End With
Dim cldBancoDados As New cldBancoDados
Return cldBancoDados.RetornaDataReader(strQuery.ToString)
End Function



No SQL esta da seguinte forma:

Citação:

CREATE DATABASE dbKoala
ON PRIMARY (
NAME=dbKoala,
FILENAME="C:\Projeto\Koala\Koala\BancoDados\dbKoala.MDF",
SIZE=10MB,
FILEGROWTH=10%
)
GO

USE dbKoala

JABA 24/05/2022 00:57:21
#499942
Resposta escolhida
Parece que voce não executou a função AbreBanco() antes de executar as consultas.


OBS: tudo que voce fizer relacionado a SQL, procure utilizar a parametrização para evitar injeção SQL.
MOUSER 24/05/2022 07:16:41
#499944
JABA, essa é a classe que faz a pesquisa no banco de dados.
Citação:

Imports System.Data.SqlClient
Imports System.Windows.Forms
Public Class cldBancoDados
Dim StringConexao As String = "Server=.;Database=dbKoala;user id=sa;pwd=123456789"
Private Function AbreBanco() As SqlConnection
Dim Conn As New SqlConnection
With Conn
.ConnectionString = StringConexao
End With
If Conn.State = ConnectionState.Closed Then
Conn.Open()
End If
Return Conn
End Function
Private Sub FechaBanco(ByVal Conn As SqlConnection)
If Conn.State = ConnectionState.Open Then
Conn.Close()
End If
End Sub
Public Sub ExecutaComando(ByVal strQuery As String)
Dim Conn As New SqlConnection
Conn = AbreBanco()
Try
Dim cmdComando As New SqlCommand
With cmdComando
.CommandText = strQuery
.CommandType = CommandType.Text
.Connection = Conn
.ExecuteNonQuery()
End With

Catch ex As Exception
"Throw ex
MsgBox("Erro ao executar Comando", MsgBoxStyle.Critical, "Erro")
Finally
FechaBanco(Conn)
End Try
End Sub
Public Function RetornaDataSet(ByVal strQuery As String) As DataSet
Dim Conn As New SqlConnection
Try
Conn = AbreBanco()
Dim cmdComando As New SqlCommand
With cmdComando
.CommandText = strQuery
.CommandType = CommandType.Text
.Connection = Conn
End With
Dim daAdaptador As New SqlDataAdapter
Dim dsDataSet As New DataSet
daAdaptador.SelectCommand = cmdComando
daAdaptador.Fill(dsDataSet)
Return dsDataSet
Catch ex As Exception
Throw New Exception("Erro na camada 3" & ex.Message)
Finally
FechaBanco(Conn)
End Try
End Function
Public Function RetornaDataReader(ByVal strQuery As String) As SqlDataReader
Dim Conn As New SqlConnection
Conn = AbreBanco()
Try
Dim cmdComando As New SqlCommand
With cmdComando
.CommandText = strQuery
.CommandType = CommandType.Text
.Connection = Conn
End With
Return cmdComando.ExecuteReader
Catch ex As Exception
Throw
MsgBox("Erro ao retornar DataReader (cldBancoDados[58,68])")
End Try
End Function
End Class

MOUSER 24/05/2022 07:18:30
#499945
E esse script é o que faz os comandos entrar nas variaveis:
Citação:

Imports System.Data.SqlClient
Imports System.Text
Public Class clnLogin
Private _Usuario As String
Private _Senha As String
Public Property Usuario As String
Get
Return _Usuario
End Get
Set(value As String)
_Usuario = value
End Set
End Property
Public Property Senha As String
Get
Return _Senha
End Get
Set(value As String)
_Senha = value
End Set
End Property
Public Function ListaUsuario(ByVal Usuario As String) As SqlDataReader
Dim strQuery As New StringBuilder
With strQuery
.Append("Select Usuario From t_Login Where Usuario like ("" & Usuario & "");")
End With
Dim cldBancoDados As New cldBancoDados
Return cldBancoDados.RetornaDataReader(strQuery.ToString)
End Function
Public Function ListaSenha(ByVal Senha As String) As SqlDataReader
Dim strQuery As New StringBuilder
With strQuery
.Append("Select Senha From t_Login Where Senha like ("" & Senha & "");")
End With
Dim cldBancoDados As New cldBancoDados
Return cldBancoDados.RetornaDataReader(strQuery.ToString)
End Function

MOUSER 24/05/2022 07:22:18
#499946
E essas gambiarra aqui é o que verifica o login
Citação:

Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Usuario = txtUsuario.Text
Senha = txtSenha.Text
Dim drDadosSenha As System.Data.SqlClient.SqlDataReader
Dim drDados As System.Data.SqlClient.SqlDataReader
drDados = Login.ListaUsuario(Usuario)
If drDados.Read Then
drDadosSenha = Login.ListaSenha(Senha)
If drDadosSenha.Read Then
frmKoala.Show()
Me.Close()
Else
MsgBox("Usuario e/ou Senha Incorretos")
End If
Else
MsgBox("Usuario e/ou Senha Incorretos", MsgBoxStyle.Critical, "Login")
End If
End Sub

JABA 24/05/2022 11:02:45
#499949
Voce repete muito código, dá pra fazer bastante refatoração em seu código. Fora isso, esse Throw no final desse código abaixo não estaria gerando uma exceção desnecessária?

Public Function RetornaDataReader(ByVal strQuery As String) As SqlDataReader
Dim Conn As New SqlConnection
Conn = AbreBanco()
Try
Dim cmdComando As New SqlCommand
With cmdComando
.CommandText = strQuery
.CommandType = CommandType.Text
.Connection = Conn
End With
Return cmdComando.ExecuteReader
Catch ex As Exception
[txt-color=#e80000]Throw[/txt-color]
MsgBox("Erro ao retornar DataReader (cldBancoDados[58,68])")
End Try
End Function
KERPLUNK 24/05/2022 14:46:06
#499951
Amigo, voce está usando classes como "depósito de variáveis". OOP é uma metodologia poderosa. Estude mais sobre ela e vai ver que sua vida vai ficar muito mais fácil.
MOUSER 28/05/2022 16:57:18
#499984
Descobri que o problema esta no SQL, pois o nome do servidor eu coloco "." pra poder selecionar qualquer servidor e evitar problemas ao instalar em alguma maquina. Só que o SQL não esta fazendo isso.
KERPLUNK 28/05/2022 17:27:16
#499985
Se o servidor está na mesma máquina, use .\NOME_DO_SERVICO
MOUSER 28/05/2022 18:23:59
#499986
Kerp ele está localmente, como é um sistema que vou distribuir gratuitamente, prefiro deixar o banco de dados no próprio sistema. Literalmente sem fins lucrativos. Mas nem por isso vou fazer nas coxas.
NICKOSOFT 30/05/2022 08:54:29
#500002
banco local junto c o sistema, pra q sqlserver então?
sistemas q usam de fato servidor, tem uma tela de configuração, e salvam essas informações pro sistema carregar diretamente após.....
inventar isso c algum servidor é apenas pra deixar seus sistema muito trabalhoso pra usuários configurarem, eu acho q foi descontinuado, mas se aplica muito bem ao seu caso o SQL Compact, procure algo sobre, apenas um runtime e o banco local esta a funcionar, vc aponta o caminho apenas, q via código como ser dinâmico, ai o usuário instala na pasta padrão ou outra, não importa....a vez q usei, é algo simples de tudo, nos moldes de usar as tabelas de access

usando OOP vc tem uma única classe q trabalha contra o banco de dados, é apenas nela q vc muda alguma coisa da sintaxe q muda de banco pra banco as vezes
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas