NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 5 - SqlDataReader a připojená databáze v C# .NET

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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();
}
}

}

 
Odpovědět
22.4.2014 19:33
Avatar
parallave
Tvůrce
Avatar
Odpovídá 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.

Odpovědět
23.4.2014 16:56
C++ & C#
Avatar
Maros2470
Člen
Avatar
Odpovídá 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.

 
Odpovědět
24.4.2014 9:48
Avatar
parallave
Tvůrce
Avatar
Odpovídá 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

Odpovědět
24.4.2014 15:28
C++ & C#
Avatar
Maros2470
Člen
Avatar
Odpovídá 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ěď.

 
Odpovědět
24.4.2014 17:25
Avatar
Odpovídá 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...

Odpovědět
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
Odpovídá 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?

 
Odpovědět
24.4.2014 17:41
Avatar
Odpovídá 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

Odpovědět
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
Odpovídá 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()
Editováno 24.4.2014 18:03
Odpovědět
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
Odpovídá 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 ...

 
Odpovědět
24.4.2014 22:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 22.