• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Chamuanza

Erro no SELECT Incorrect syntax near '#'.

8 mensagens neste tópico

Oi Pessoal

O que e que esta mal no select para dar o erro  Incorrect syntax near '#'.  :wallbash:

Em qualquer dos dois Selects me dá o mesmo erro

Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
        ' Declaração de variáveis privadas
        Dim da As SqlDataAdapter
        Dim ds As DataSet

        ' Texto de ligação à base de dados
        Dim myConnectionString As String = _
        "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Utilizador\" & _
        "My Documents\BalancoFamiliar.mdf;" & _
        "Integrated Security=True;Connect Timeout=30;User Instance=True"

        ' Cria uma nova ligação à base de dados
        Dim connection As New SqlConnection(myConnectionString)

        ' Cria um novo SqlDataAdapter que servirá para actualizar o DataSet

        Dim SQL As String = "SELECT Id,Data,Despesa,Designacao [Designação],Categoria,SubCategoria,Familia FROM Principal Where Despesa Between #" & DateTimePicker1.Value.ToShortDateString() & "# And #" & DateTimePicker2.Value.ToShortDateString() & "#"


        ' Dim SQL As String = "SELECT Id,Data,Despesa,Designacao [Designação],Categoria,SubCategoria,Familia FROM Principal Where Despesa = #2009 - 04 - 08# "




        da = New SqlDataAdapter(SQL, connection)

        ' Cria um novo DataSet, ou seja, uma representação em memória da informação
        ds = New DataSet

        ' Coloca a informação da tabela definida no DataSet
        da.Fill(ds, "Principal")

        ' Define que a fonte de dados da DataGridView é a nossa DataSet
        ' criando automáticamente as colunas e linhas de dados
        Me.DataGridView1.DataSource = ds.Tables("Principal")


        ' Limpa a ligação à base de dados. Não é necessário fechar a ligação
        ' porque esta não foi aberta através do comando .Open()
        connection = Nothing

        Call ControlaGrid()


    End Sub

Desde já Obrigado pela atenção

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não usas parameters ?

Defines a connection string com os parametros e depois podes fazer, por exemplo, a seguir a:

da = New SqlDataAdapter(SQL, connection)

O seguinte:

da.SelectCommand.Parameters.Add("@parametro",SqlDbType.DateTime).Value =  ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes pegar no meu código e dar-me um exemplo, nãoestou muito a vontade com essa dos parametros

Obrigado pela atenção

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:cheesygrin:

Já dei a volta a situação

'Converte a data e retira os carecteres a direita

        Dim DataInicio = Convert.ToString(DateTimePicker1.Value)

        DataInicio = DataInicio.Remove(10, 9)

        Dim DataFim = Convert.ToString(DateTimePicker2.Value)

        DataFim = DataFim.Remove(10, 9)

no select foi assim

Dim SQL As String = "SELECT Id,Data,Despesa,Designacao [Designação],Categoria,SubCategoria,Familia FROM Principal Where Data Between '" & DataInicio & "' And '" & DataFim & "'"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E porque não fizeste como te disse ?

Dim SQL As String = "SELECT Id,Data,Despesa,Designacao [Designação],Categoria,SubCategoria,Familia FROM Principal Where [Data] Between @DataInicio And @DataFim"

e depois:

da = New SqlDataAdapter(SQL, connection)

da.SelectCommand.Parameters.Add("@DataInicio", SqlDbType.DateTime).Value =  DateTimePicker1.Value

da.SelectCommand.Parameters.Add("@DataFim", SqlDbType.DateTime).Value =  DateTimePicker2.Value

Mostei-te quase tudo só faltava leres e testares ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi Obrigado pela atenção

de modo geral só recorro a perguntar quando já estou demasiado confuso (face aos poucos conhecimentos que tenho), no entanto tinha a ideia que o problema estava principalmente no posicionamento das plicas, e como retornava a data para o select, e vou tentando sempre, até para perceber o porquê dos erros

De qualquer das maneiras fico com a informação, que vou aplicar na mesma aplicação com outros select's

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora