Jump to content
Chamuanza

Consulta retorna Erro

Recommended Posts

Chamuanza

Um bem Aja a Todos com votos de BOAS FESTAS

Não consigo saber o que está mal ou falta no código abaixo que apresenta o erro 

An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll

Additional information: A propriedade ConnectionString não foi inicializada.

Agradeço uma ajuda

 

Imports System
Imports System.IO
Imports System.Net
Imports System.Data
Imports System.Data.OleDb
Imports System.Text.RegularExpressions




Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click


        'Verifica se a data do calendario é a data do sorteio
        Dim VerificarDataSorteio As Date = DataDateTimePicker.Value
        Dim Teste As Byte
        Teste = VerificarDataSorteio.DayOfWeek


        If Teste <> 5 And Teste <> 2 Then
            MsgBox("Está fora da Data do Sorteio" & vbCrLf & "Actualize a data no calendario", MsgBoxStyle.Information, "Verificar Data do Sorteio")
            Exit Sub
        End If

       
        DataSorteio = DataDateTimePicker.Value

        ' Dim Sorteio As String
        ' Label20.Text = Format(DataSorteio, "dd/MM/yyyy")

        Label20.Text = DataSorteio


        'SELECT sobre Apostas para Sortear
         Dim da As OleDbDataAdapter
         Dim ds As DataSet

        DataSorteio = DataDateTimePicker.Value
        
        Dim Sorteio = Format(DataSorteio, "dd/MM/yyyy")


        ' Texto de ligação à base de dados
        Dim ConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "GuardarResultados.accdb"

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

        '  Dim myconnectionString As String


        Dim SQL As String = "SELECT * FROM NumJogadosEuromilhoes WHERE Data = '" & Sorteio & "'"


        da = New OleDbDataAdapter(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, "NumJogadosEuromilhoes")

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

        ' 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

        If dgridJogadosEuromilhoes.RowCount = 1 Then
            MsgBox("Não exitem Apostas nesta Data", MsgBoxStyle.Information, "Verificar Existência de Apostas")
            Exit Sub
        End If

        'NS1TextBox.Focus()
        DataDateTimePicker.Focus()

    End Sub

 

Share this post


Link to post
Share on other sites
jlpcalado

Dim connection As New OleDbConnection(myConnectionString)

para:

Dim connection As New OleDbConnection(ConnectionString)

 

Share this post


Link to post
Share on other sites
Chamuanza

Obrigado pela atenção jlpcalado

Tenho andado a rabiar com a situação e acabei por alterar o código. Agora consigo correr o select do código abaixo mas reporta uma linha em branco, penso que tem a ver com as plicas 

aqui   - Where Data =" & Sorteio & "" , não acerto com isto

Já alterei o formato da data para "dd/MM/yyyy",mas dá o mesmo resultado linha em branco.

 

 DataSorteio = DataDateTimePicker.Value
       
        Dim Sorteio = Format(DataSorteio, "yyyy/MM/dd")

        Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Justino\Documents\Visual Studio 2015\Projects\TotoMilhoesNovo\TotoMilhoesNovo\bin\Debug\GuardarResultados.accdb")
       
        Dim Query As String = "SELECT Id,Data,DiaSemana,Aposta,N1,N2,N3,N4,N5,E1,E2 FROM NumJogadosEuromilhoes Where Data =" & Sorteio & ""


        Dim DataAdapter As New OleDbDataAdapter(Query, ConnectionString)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "NumJogadosEuromilhoes")


        ' Neste caso utilizei uma datagridview para visualizar os dados
        Me.dgridJogadosEuromilhoes.DataSource = MyData.Tables("NumJogadosEuromilhoes")

 

Edited by Chamuanza

Share this post


Link to post
Share on other sites
espsousa

E não te dá erro? Parece-me que faltam umas plicas à volta de Sorteio: Where Data ='" & Sorteio & "'".

Ou então elimina a variável Sorteio e experimenta: Where Data = CONVERT(DATETIME, '" & DataSorteio.ToString("dd\/MM\/yyyy") & "', 103)  (não sei se funciona com datasources .accdb, mas com MSSQL funciona)

Share this post


Link to post
Share on other sites

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.