LusoRobótica - Robótica em Português

Software => Basic => Tópico iniciado por: magtaem em 30 de Junho de 2014, 21:26

Título: Problema com Base de Dados
Enviado por: magtaem em 30 de Junho de 2014, 21:26
Boas pessoal o seguinte código dá-me erro no executarcomando2, quando faz o = com o execute scalar.

O QUe estará de errado?

Código: [Seleccione]
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmMusica.Tick

        If tbcodigotext = TextBox1.Text Then
        Else


            If TextBox1.Text = "" Then
            Else
                Try
                    Dim executarcomando As String
                    Dim executarcomando2 As String
                    Dim coneccao As New OleDbConnection
                    Dim comando As New OleDbCommand
                    Dim caminhoBD As String = My.Settings.caminhobd




                    coneccao.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\lol\MEOCloud\Pedro Magalhães\PAP\SOFTWARE\Home automation\Home Automation Voice Control\HomeVoiceControl\HomeVoiceControl\bin\Debug\bd\album.accdb"
                    coneccao.Open()
                    comando.Connection = coneccao
                    comando.CommandText = "SELECT id_album FROM album Where codigobarras=@codigo"
                    comando.Parameters.AddWithValue("@codigo", TextBox1.Text)
                    executarcomando = comando.ExecuteScalar
                    coneccao.Close()

                    coneccao.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\lol\MEOCloud\Pedro Magalhães\PAP\SOFTWARE\Home automation\Home Automation Voice Control\HomeVoiceControl\HomeVoiceControl\bin\Debug\bd\album.accdb"

                    coneccao.Open()
                    comando.Connection = coneccao
                    comando.CommandText = "SELECT caminho FROM caminho Where id_album='" & executarcomando & "'"

                    executarcomando2 = comando.ExecuteScalar
                    coneccao.Close()

                    wpm.URL = executarcomando2
                    TextBox1.Text = ""
                    ' tbcodigotext = TextBox1.Text

                Catch ex As SqlException
                    MsgBox(ex.Message)
                End Try

            End If
        End If
    End Sub
Título: Re: Problema com Base de Dados
Enviado por: senso em 30 de Junho de 2014, 21:29
Eu diria que faltam ()
Título: Re: Problema com Base de Dados
Enviado por: magtaem em 30 de Junho de 2014, 21:33
Não caro amigo, não é isso :)

O erro que retorna é : Tipo de dados incorreto na expressão de critérios.
Título: Re: Problema com Base de Dados
Enviado por: senso em 30 de Junho de 2014, 22:13
A documentação da microsoft discorda, assim á primeira vista, mas vb não é comigo.
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx)
Título: Re: Problema com Base de Dados
Enviado por: jm_araujo em 30 de Junho de 2014, 22:54
Também não sei grande coisa de VB e nem de SQL, mas o primeiro SELECT não retorna uma lista? Ao concatenar com uma string o VB porta-se bem? Mete um breakpoint antes do executescalar e confirma que o Commandtext está como deve.