PREENCHER TXTBOX COM SELECT E INNER JOIN SQL
Olá Amigos,
Estou usando o seguinte código para preencher um campo statusStrip:
Private Sub preenchesstUsuario()
Dim sqlCmd As New SqlCommand(strCmd, Con)
Dim strNome As String = txtNomeUsuario.Text
Dim com As New System.Data.SqlClient.SqlCommand(String.Format([Ô]Select TB_Tipo.Nome,TB_Login.Tipo FROM TB_Tipo INNER JOIN TB_Login on (TB_Tipo.id_Tipo = TB_Login.Tipo) WHERE TB_Login.Usuario =[Ô] & strNome, Con))
Dim da As New System.Data.SqlClient.SqlDataAdapter(com)
Dim dt As New DataTable
Con.Open()
sqlCmd.ExecuteNonQuery()
da.Fill(dt)
frmPrincipal.sstUsuario.Text = dt.Rows(0)([Ô]Nome[Ô]).ToString
con.Close()
Exit Sub
End Sub
Dá o seguinte erro:
Sintaxe incorreta próxima a [ô]=[Ô]
Não consigo resolver o erro. Espero que possam me ajudar.
Estou usando o seguinte código para preencher um campo statusStrip:
Private Sub preenchesstUsuario()
Dim sqlCmd As New SqlCommand(strCmd, Con)
Dim strNome As String = txtNomeUsuario.Text
Dim com As New System.Data.SqlClient.SqlCommand(String.Format([Ô]Select TB_Tipo.Nome,TB_Login.Tipo FROM TB_Tipo INNER JOIN TB_Login on (TB_Tipo.id_Tipo = TB_Login.Tipo) WHERE TB_Login.Usuario =[Ô] & strNome, Con))
Dim da As New System.Data.SqlClient.SqlDataAdapter(com)
Dim dt As New DataTable
Con.Open()
sqlCmd.ExecuteNonQuery()
da.Fill(dt)
frmPrincipal.sstUsuario.Text = dt.Rows(0)([Ô]Nome[Ô]).ToString
con.Close()
Exit Sub
End Sub
Dá o seguinte erro:
Sintaxe incorreta próxima a [ô]=[Ô]
Não consigo resolver o erro. Espero que possam me ajudar.
Acho que no final da sua SQL teria que colocar aspas simples.
Faça assim pra ver se resolve:
Dim com As New System.Data.SqlClient.SqlCommand(String.Format([Ô]Select TB_Tipo.Nome,TB_Login.Tipo FROM TB_Tipo INNER JOIN TB_Login on (TB_Tipo.id_Tipo = TB_Login.Tipo) WHERE TB_Login.Usuario =[ô] [Ô] & strNome & [Ô] [ô] [Ô], Con))
Faça assim pra ver se resolve:
Dim com As New System.Data.SqlClient.SqlCommand(String.Format([Ô]Select TB_Tipo.Nome,TB_Login.Tipo FROM TB_Tipo INNER JOIN TB_Login on (TB_Tipo.id_Tipo = TB_Login.Tipo) WHERE TB_Login.Usuario =[ô] [Ô] & strNome & [Ô] [ô] [Ô], Con))
Boa Tarde JABA
Cara não funcionou, continua dando o mesmo erro.
Cara não funcionou, continua dando o mesmo erro.
Faça assim pra ver então:
Dim com As New System.Data.SqlClient.SqlCommand([Ô]Select TB_Tipo.Nome,TB_Login.Tipo FROM TB_Tipo INNER JOIN TB_Login on (TB_Tipo.id_Tipo = TB_Login.Tipo) WHERE TB_Login.Usuario =[ô] [Ô] & strNome & [Ô] [ô] [Ô], Con)
Dim com As New System.Data.SqlClient.SqlCommand([Ô]Select TB_Tipo.Nome,TB_Login.Tipo FROM TB_Tipo INNER JOIN TB_Login on (TB_Tipo.id_Tipo = TB_Login.Tipo) WHERE TB_Login.Usuario =[ô] [Ô] & strNome & [Ô] [ô] [Ô], Con)
O TB_Tipo.id_Tipo e o TB_Login.Tipo são iguais, ou seja os dois possuem a mesma estrutura
Não sei ao certo se é isso que o Marcelo está se referindo, mas só pra deixar as coisas mais claras, se o campo TB_Tipo.id_Tipo for número, então o TB_Login.Tipo deverá ser número também, é isso Marcelo?
Olá MARCELOKROL E JABA
Sim, os valores são os mesmos nas duas tabelas.
Não funcionou com a nova linha, dá o mesmo erro:
Sintaxe incorreta próxima a [ô]=[Ô]
Montei o código com datareader e funcionou corretamente, ficou assim:
Private Sub strsstUsuario()
Dim con As New System.Data.SqlClient.SqlConnection([Ô]Data Source=SAN-PC;Initial Catalog=OBoteco;Integrated Security=True[Ô])
Dim com As New System.Data.SqlClient.SqlCommand(String.Format([Ô]SELECT * FROM TB_Login WHERE Usuario = [ô][Ô] & txtNomeUsuario.Text & [Ô][ô][Ô]), con)
Dim dr As System.Data.SqlClient.SqlDataReader
Try
con.Open()
dr = com.ExecuteReader
If dr.HasRows Then
dr.Read()
frmPrincipal.sstGrupo.Text = dr(5).ToString
If dr(5).ToString = 1 Then
frmPrincipal.sstGrupo.Text = [Ô]Administrador[Ô]
frmPrincipal.sstUsuario.Text = txtNomeUsuario.Text
frmControle.ShowDialog()
ElseIf dr(5).ToString = 2 Then
frmPrincipal.sstGrupo.Text = [Ô]Gerente[Ô]
ElseIf dr(5).ToString = 3 Then
frmPrincipal.sstGrupo.Text = [Ô]Vendedor[Ô]
ElseIf dr(5).ToString = 4 Then
frmPrincipal.sstGrupo.Text = [Ô]Usuário[Ô]
ElseIf dr(5).ToString = 5 Then
frmPrincipal.sstGrupo.Text = [Ô]Manutenção[Ô]
End If
End If
dr.Close()
Catch ex As Exception
Finally
con.Close()
End Try
End Sub
O que acham?
Sim, os valores são os mesmos nas duas tabelas.
Não funcionou com a nova linha, dá o mesmo erro:
Sintaxe incorreta próxima a [ô]=[Ô]
Montei o código com datareader e funcionou corretamente, ficou assim:
Private Sub strsstUsuario()
Dim con As New System.Data.SqlClient.SqlConnection([Ô]Data Source=SAN-PC;Initial Catalog=OBoteco;Integrated Security=True[Ô])
Dim com As New System.Data.SqlClient.SqlCommand(String.Format([Ô]SELECT * FROM TB_Login WHERE Usuario = [ô][Ô] & txtNomeUsuario.Text & [Ô][ô][Ô]), con)
Dim dr As System.Data.SqlClient.SqlDataReader
Try
con.Open()
dr = com.ExecuteReader
If dr.HasRows Then
dr.Read()
frmPrincipal.sstGrupo.Text = dr(5).ToString
If dr(5).ToString = 1 Then
frmPrincipal.sstGrupo.Text = [Ô]Administrador[Ô]
frmPrincipal.sstUsuario.Text = txtNomeUsuario.Text
frmControle.ShowDialog()
ElseIf dr(5).ToString = 2 Then
frmPrincipal.sstGrupo.Text = [Ô]Gerente[Ô]
ElseIf dr(5).ToString = 3 Then
frmPrincipal.sstGrupo.Text = [Ô]Vendedor[Ô]
ElseIf dr(5).ToString = 4 Then
frmPrincipal.sstGrupo.Text = [Ô]Usuário[Ô]
ElseIf dr(5).ToString = 5 Then
frmPrincipal.sstGrupo.Text = [Ô]Manutenção[Ô]
End If
End If
dr.Close()
Catch ex As Exception
Finally
con.Close()
End Try
End Sub
O que acham?
Faça o seguinte então, passe o depurador e nos mostre qual é a linha que está acontecendo o erro.
Tópico encerrado , respostas não são mais permitidas