PREENCHER TXTBOX COM SELECT E INNER JOIN SQL

SANROMAN 19/04/2014 12:21:46
#437433
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.
JABA 19/04/2014 13:29:05
#437435
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))
SANROMAN 19/04/2014 14:40:51
#437436
Boa Tarde JABA

Cara não funcionou, continua dando o mesmo erro.
JABA 19/04/2014 18:33:45
#437439
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)
MARCELOKROL 19/04/2014 19:17:14
#437440
O TB_Tipo.id_Tipo e o TB_Login.Tipo são iguais, ou seja os dois possuem a mesma estrutura
JABA 19/04/2014 20:45:52
#437446
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?
SANROMAN 20/04/2014 16:06:05
#437456
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?

JABA 20/04/2014 21:47:24
#437464
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