Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Diskusia – 5. diel - SqlDataReader a pripojená databáza v C# .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Maros2470
Člen
Avatar
Maros2470:22.4.2014 19:33

Zkoušel jsem výpis tabulky ve Form. Napsal jsem to takto, ale vypíše mi pouze poslední řádek tabulky. Kde mám chybu?

private void button2_Click(ob­ject sender, EventArgs e)
{

string connectionString = @"Data Source=PCMAREK\E­li;Initial Catalog=Eli-elektro;Integrated Security=True";
using (SqlConnection pripojeni = new SqlConnection(con­nectionString))
{
pripojeni.Open();

SqlCommand prikaz = new SqlCommand("SELECT ID, Banka, Kod FROM Banky", pripojeni);

SqlDataReader dataReader = prikaz.Execute­Reader();
while (dataReader.Read())
{
richTextBox1.Text = dataReader["ID"]­.ToString() + " " + dataReader["Ban­ka"].ToString() + " " + dataReader["Kod"]­.ToString();
comboBox1.Text = dataReader["Kod"]­.ToString();
comboBox2.Text = dataReader ["Banka"].ToS­tring();
}
}

}

 
Odpovedať
22.4.2014 19:33
Avatar
parallave
Tvůrce
Avatar
Odpovedá na Maros2470
parallave:23.4.2014 16:56

Za richTextBox1.Text atd. máš "=", místo "+=", takže ti každá iterace přemaže předchozí text.

Odpovedať
23.4.2014 16:56
C++ & C#
Avatar
Maros2470
Člen
Avatar
Odpovedá na parallave
Maros2470:24.4.2014 9:48

Teď to vypíše všechny položky, ale neodřádkuje. Píše to vše za sebou.

 
Odpovedať
24.4.2014 9:48
Avatar
parallave
Tvůrce
Avatar
Odpovedá na Maros2470
parallave:24.4.2014 15:28

Ještě přidej na konec řetězce znak "\n", znamená to další řádek. viz http://msdn.microsoft.com/…21280bw.aspx

Odpovedať
24.4.2014 15:28
C++ & C#
Avatar
Maros2470
Člen
Avatar
Odpovedá na parallave
Maros2470:24.4.2014 17:25

Díky za radu. Jen ještě jeden dotaz, jak to udělat s Combobox, tam se mi to také řadí za sebou? Díky za odpověď.

 
Odpovedať
24.4.2014 17:25
Avatar
Odpovedá na Maros2470
Michal Štěpánek:24.4.2014 17:30

Combobox musíš plnit buď jako Add items, nebo mu musíš dát jako zdroj dat výsledek toho SQL dotazu...

Odpovedať
24.4.2014 17:30
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Maros2470
Člen
Avatar
Odpovedá na Michal Štěpánek
Maros2470:24.4.2014 17:41

Asi jsem blbej, ale nechápu ten výsledek SQL dotazu, já myslel, že ho tam mám.
comboBox2.Text = dataReader ["Banka"].ToS­tring();, nebo ne?

 
Odpovedať
24.4.2014 17:41
Avatar
Odpovedá na Maros2470
Michal Štěpánek:24.4.2014 17:57

ale combobox používá vlastnosti value a item a NE Text, následně se pak odkazuješ na SelectedItem, SelectedValue nebo SelectedIndex

Odpovedať
24.4.2014 17:57
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovedá na Maros2470
Michal Štěpánek:24.4.2014 18:02

Nevím jak to udělat v C#, ale ve VB.NET je to např. takto

//Naplnění Comboboxu CB_Zakazky - název firma a město
        Dim dt As DataTable = New DataTable     //tabulka s daty v paměti
        oledbcon.Open() //připojovací řetězec
        Dim strSql As OleDbCommand
        strSql = New OleDbCommand("SELECT Id, CisloZakazky + ' - ' + NazevZakazky AS Zakazka FROM TabulkaZakazky", oledbcon)
        Dim ada As New OleDbDataAdapter(strSql)
        ada.Fill(dt)

        With Me.CB_Zakazky
            .DataSource = dt
            .DisplayMember = "Zakazka"
            .ValueMember = "Id"
        End With
        oledbcon.Close()
Editované 24.4.2014 18:03
Odpovedať
24.4.2014 18:02
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
JOF
Tvůrce
Avatar
Odpovedá na Maros2470
JOF:24.4.2014 22:45

Jak píše čočkin - u comboboxu nepoužívej vlastnost Text, ale Items apod.
Např. comboBox1.Item­s.Add(dataRea­der["Kod"].ToS­tring());
(Jinak vřele doporučuji komponenty pořádně pojmenovávat a nenechávat jméno comboBox1, comboBox2 atd.)

Co se týká připojení comboboxu na nějaký datový zdroj, tak to je možné u odpojeného přístupu ...

 
Odpovedať
24.4.2014 22:45
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!