accdb ... data do textboxů   otázka

VB.NET

Omlouvám se za stupiditu dotazu, ale potřeboval bych ukázku kódu, jak z databáze načíst do textboxů jednotlivá data.

Databáze obsahuje obsah RichTextBoxu, pak pole1, pole2...atd, a já bych potřeboval obsahy techto polí zapsat do textboxů.

Kód:

sql = "SELECT * FROM vzorky_vlastnosti WHERE Nazev = '" & TextBox1.Text & "'"
        Dim oleDbCmd = New OleDbCommand(sql, CN)

        If Not oleDbCmd.Connection.State = ConnectionState.Open Then
            oleDbCmd.Connection.Open()
        End If
        Dim oleDbDataReader = oleDbCmd.ExecuteReader()
        oleDbDataReader.Read()
        Form4.RT.Clear() : Form4.RT.Rtf = ""
        Try
            Form4.ID.Text = oleDbDataReader.GetInt32(0)
            Form4.TSL.Text = oleDbDataReader.GetString(1)
            Form4.RT.Rtf = oleDbDataReader.GetString(2)
            Form4.pomocny.Text = "editujeme"
            
        Catch ex As Exception
            'není tam nic
            If Err.Number = 5 Then
                Form4.TSL.Text = TextBox1.Text
                Form4.ID.Text = ""
                Form4.pomocny.Text = "zapisujeme"
            Else
                MsgBox("Nastala jiná chyba: " & Err.Number & " - " & Err.Description & ". Doporučujeme záznam smazat a vytvořit jej znovu.")
            End If
        End Try

        oleDbCmd.Connection.Close()

Pro jednochust mejmě pole1 a textbox1, jak do textboxu v uvedené struktuře zapíšu obsah pole1.

Moc děkuji za náměty

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Na uvedeném kódu nevidím nic špatně, snad jen místo

Dim oleDbDataReader = oleDbCmd.ExecuteReader()

bych dal

Dim oleDbDataReader as OleDb.OleDbDataReader = oleDbCmd.ExecuteReader()

Pak je ještě možné dát

If oleDbDataReader.Read() then
    'vrátilo to řádek, tak nasypu data do textboxů
    Form4.ID.Text = oleDbDataReader.GetInt32(0)
else
    'nevrátilo to nic
end if

V čem je problém? Do textových polí se nic nenačte?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To textových polí to načítá a funguje to... jenom vlastně nevím jak to napsat v kódu, když je struktura:

Form4.ID.Text = oleDbDataReader.GetInt32(0)

kde index 0 je vlastně ID...v databázi, je to číslo, tedy použiju GetInt32(index). Když ta databáze obsahuje třeba 10 polí, tak hodnotu pátého pole načtu příkazem:

Form4.ID.Text = oleDbDataReader.GetString(5)

???

Čili index v tom Get(index) odpovídá číslu pole v tabulce databáze?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jojo, je to přesně tak, je to dáno pořadím sloupců v databázi (tabulce) resp. tím co vrátí "SELECT * FROM...". Když máte

SELECT IDAdresy, Jmeno, Prijmeni FROM

tak použijete pouze indexy 0,1,2

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Moc děkuji...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback