Salve a tutti.
Ho un database su Postgres e ci accedo tramite ado.net da un programma scritto in vb.net.
Il programma in pratica è un calendario per gestire dei promemoria, che vengono salvati su di un database. All'avvio con una select volevo mettere in grassetto tutte le date sulle quali è presente almeno un promemoria. L'oggetto DateTimePicker non andava bene, quindi ne sto usando un altro che supporta il grassetto (non mi ricordo il nome..).
Andiamo al dunque....
l'oggetto Odbc.OdbcConnection è globale, lo inizializzo nel load del form principale, per poi utilizzarlo in seguito.
La connessione avviene regolarmente perchè l'inserimento dei dati funziona
Il problema ce l'ho quando devo fare una select, con dei dati in output.codice:Private Sub NEWBUTTON_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NEWBUTTON.Click Dim selectedDate As Date = calendar.SelectionRange.Start Dim SQL As String SQL = "insert into promemoria (data,message,ora) values ('" SQL += selectedDate + "'" SQL += ",'" + MESSAGE.Text + "'" SQL += ",'" + H.Text + ":" + M.Text + ":00" + "')" 'SQL string tested with postgres Dim insert As Odbc.OdbcCommand insert = New Odbc.OdbcCommand() insert.Connection = Conn Conn.Open() insert.CommandText = SQL If insert.ExecuteNonQuery() = 1 Then calendar.AddBoldedDate(selectedDate) calendar.Refresh() MessageBox.Show("inserimento riuscito", "SUCCESS", MessageBoxButtons.OK) End If Conn.Close() End Sub
la sinassi è pressochè la stessa, a parte il fatto che utilizzo executereader e non execute normale.
eccovi il codice
ho provato a spostare la chiusura del reader e della connessione, ad utilizzare item(i) per accedere ai dati ed altro, ma il risultato è sempre lo stesso: solito errore che afferma che non esiste alcun oggetto per la riga/colonnacodice:Private Sub calendar_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles calendar.DateChanged Dim SQL As String = "select data from promemoria" Dim selectedDate As Date = calendar.SelectionRange.Start Dim conta As Odbc.OdbcCommand Dim read As Odbc.OdbcDataReader conta = New Odbc.OdbcCommand(SQL, Conn) Conn.Open() read = conta.ExecuteReader() Dim s As Object = read(0).ToString calendar.AddBoldedDate(s) read.Close() Conn.Close() End Sub
Datemi una mano che è da un pò che ci batto la testa![]()
Grazie in anticipo. Cordiali saluti


Rispondi quotando