Jump to content

Recommended Posts

Posted

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

Posted

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 =  ...

Posted

😁

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 & "'"

Posted

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 😉

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.