none
Richiamare stato checkbox da DB Access RRS feed

  • Domanda

  • Buongiorno a tutti/e,

    mi sembrava banale ma non ne vengo fuori....

    Nel DB Access ho una tabella con colonna impostata a "Si/No" che nella form produce il classico "segno di spunta" in una checkbox

    Mentre per il salvataggio ho risolto, per il richiamo da DB del valore della checkbox e successivo inserimento del "segno di spunta" non so come fare.

    In genere utilizzo un qualcosa del tipo:

    NometextBox.text = reader.GetString(n.colonna)

    ma in questo caso ovviamente non funziona.Ho provato con:

    CasellaCheckBox.Checked = DR.GetDouble(n.colonna)

    ma nulla. Qualche suggerimento?

    Infinite grazie

    P.S. Codice di apertura DB e lettura dati: (ovviamente le 3 istruzioni per il recupero dati delle checkbox sono commentati in quanto non funzionano......

    DBConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Para1 & "\LABO_be.mdb;"
            DBConn.Open()
            SelQry = "SELECT BOLLE.*, CATALOGO.TIPO, DISEGNI.PART_SHORT_DESCRI
            FROM((BOLLE LEFT JOIN CATALOGO ON BOLLE.DISEGNO = CATALOGO.DISEGNO)
            INNER JOIN DISEGNI ON BOLLE.DISEGNO = DISEGNI.PARTNBR)
            WHERE N_BOLLA = " & Form3.Temp_Buono.Text
            'SelQry = "SELECT * FROM BOLLE WHERE N_BOLLA = " & Form3.Temp_Buono.Text
            cmd = New OleDbCommand(SelQry, DBConn)
            Using reader = cmd.ExecuteReader()
                If reader.HasRows Then
                    Try
                        reader.Close()
                        DR = cmd.ExecuteReader
                        DR.Read()
                        T_NP.Text = DR.GetDouble(0)
                        T_Labo.Text = DR.GetString(1)
                        T_Ente.Text = DR.GetDouble(2)
                        T_Disegno.Text = DR.GetDouble(4)
                        T_Qta.Text = DR.GetDouble(7)
                        T_Provenienza.Text = DR.GetString(8)
                        T_DocRif.Text = DR.GetString(9)
                        T_Materiale.Text = DR.GetString(10)
                        If Not DR.IsDBNull(DR.GetOrdinal("CAMPIONE")) Then
                            T_Campione.Text = DR.GetString(DR.GetOrdinal("CAMPIONE"))
                        End If
                        'C_check1.Text = DR.GetInt32(13)
                        'C_check2.Checked = DR.GetDouble(14)
                        'C_check3.Checked = DR.GetDouble(15)
                        T_Prove.Text = DR.GetString(16)
                        T_Data.Text = DR.GetDateTime(17)
                        T_Tipo63.Text = DR.GetString(18)
                        T_Visto1.Text = DR.GetString(19)
                        T_Denominazione.Text = DR.GetString(DR.GetOrdinal("PART_SHORT_DESCRI"))
                        T_Tipo.Text = DR.GetString(DR.GetOrdinal("TIPO"))
                        DR.Close()
                        B_Save.Visible = True
                    Catch ex As Exception
                        MessageBox.Show(ex.Message)
                    End Try
                End If
            End Using
            DBConn.Close()

    • Modificato Makino500 domenica 7 marzo 2021 09:15
    sabato 6 marzo 2021 21:17

Risposte


  •                     'C_check1.Text = DR.GetInt32(13)
                        'C_check2.Checked = DR.GetDouble(14)
                        'C_check3.Checked = DR.GetDouble(15)

    non funziona perché vuoi attribuire un int32 a C_check1.Text che richiede una stringa e un double a  C_check2.Checked  che richiede un boolean
    • Contrassegnato come risposta Makino500 domenica 7 marzo 2021 11:11
    domenica 7 marzo 2021 11:06

Tutte le risposte

  • Difficile aiutarti se non mostri il codice che usi per aprire il db e leggere i dati.
    domenica 7 marzo 2021 09:08
  • Hai ragione Patel45, ieri sera ero fuso...... ho aggiunto il codice. Grazie
    domenica 7 marzo 2021 09:16

  •                     'C_check1.Text = DR.GetInt32(13)
                        'C_check2.Checked = DR.GetDouble(14)
                        'C_check3.Checked = DR.GetDouble(15)

    non funziona perché vuoi attribuire un int32 a C_check1.Text che richiede una stringa e un double a  C_check2.Checked  che richiede un boolean
    • Contrassegnato come risposta Makino500 domenica 7 marzo 2021 11:11
    domenica 7 marzo 2021 11:06
  • Ti giuro che AVEVO PROVATO MA NON FUNZIONAVA!!!!!!!!!!!!

    Evidentemente mancava la parolina buona di patel45 !!!!! :-))))

    Grazie infinite!!! Risolto!!!!

    P.S. Dove abiti? Mi picerebbe offrirti una birretta per questi aiuti!!!

    domenica 7 marzo 2021 11:16
  • Ciao Makino500,

    Grazie per aver indicato e sengato la risposta che ti ha aiutato!


    Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    lunedì 8 marzo 2021 06:15
    Moderatore