Jednotlivé řádky v DataGridView   zodpovězená otázka

VB.NET, ADO.NET, WinForms, Databáze

VB 2008EE - SQL Server 2005

Dim text1 As String = "SELECT datum, cas, udal, pok FROM dbo.udalosti"     ' defince dotazu
Dim text2 As String = " WHERE (((porden=" & "'" & porcis & "'" & ") " & "Or (porden=" & "'" & porcisa & "'" & ")) " & "And (pok=" & "'" & TextBox4.Text & "'" & "))"
Dim text3 As String = " ORDER BY pok, porden, cas"
Dim textsql = text1 & text2 & text3

Dim cmd As New SqlClient.SqlCommand    ' vykonání dotazu    
cmd.CommandText = textsql
cmd.Connection = con
Dim db As New SqlClient.SqlDataAdapter(cmd)
Dim dc As New DataTable
db.Fill(dc)        

Dim pocet As Integer = dc.Rows.Count      ' počet řádků ve výsledku dotazu
  If pocet > 0 Then
    DataGridView1.Visible = True      ' zobrazení dat (DataGridView)
    DataGridView1.DataSource = dc
  Else
    Label7.Visible = True      ' nulový počet řádků z dotazu 
    Beep()
  End If

con.Close()

To předcházející funguje bez problémů, data z databáze se zobrazí v DGV, ale já bych potřeboval s jednotlivými řádky (z výsledku dotazu) před zobrazením ještě pracovat. Jak se dostanu k jednotlivým řádkům ještě před zobrazením?

Dáky předem za "nakopnutí".

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

Váš problém by možná řešila vlastnost gv - EmptyDataText, EmptyDataRowStyle.

Petr

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

Stačí cyklem projít kolekci DataGridView1.Rows, která obsahuje jednotlivé řádky. Obsahy každé buňky v řádku pak najdete v kolekci Cells, která je v každém řádku.

'vypíše 5. buňku na 3. řádku (čísluje se od nuly)
MsgBox(DataGridView1.Rows(2).Cells(4).Value)

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

To vypadá nadějně, ale stejně se objevuje hláška:

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

Ať zadám jakýkoliv index řádku nebo buňky (sloupce) objevuje se stále stejná chyba.

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

Buď řádky a buňky procházíte špatně a používáte indexy, které v kolekcích nejsou (např. saháte na řádek 5, ale tabulka má jen 5 řádků, ty se ovšem číslují od nuly, takže jejich indexy jsou 0 až 4).

Anebo se snažíte tabulku procházet, když ještě není naplněná daty.

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

Na indexy jsem si dal zvláštní pozor, takže v tom to určitzě není. Zkusím se potrápit s druhou možností. Každopádně díky za radu.

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