Naplnění tabulky z podkladové databáze   otázka

VB.NET

Zdravím,

Pracuji ve VB2005 s DB MSSQL Server 2005 EE.

V programu mám netypový dataset, v něm tabulku, tabulka je přes objekt BindingSource připojena k objektu DataGridView.

...
bsZasobnik = New BindingSource(ds, mTabulkaZasobnik)
dgwZasobnik.DataSource = bsZasobnik
...

Vše funguje jak má, akorát když v níže uvedeném kódu při refreshi dat z podkladové DB odstraním řádek, ve kterém tabulku v datasetu nejdřív vymažu metodou Clear, tak se čas načtení zvýší při cca 150 řádcích z cca 2 desetin sekundy na 1,5 sekundy.

 Private Sub RefreshdgwZasobnik()
    'Znovunačtení mřížky se Zasobnikem vstupů
    Cursor.Current = Cursors.WaitCursor
    Dim HorPos As Integer = dgwZasobnik.FirstDisplayedScrollingRowIndex
    ds.Tables(mTabulkaZasobnik).Clear() '!!!Toto je rozhodujici
    'bsZasobnik.SuspendBinding()
    'dgwZasobnik.ResumeLayout()
    'ds.Tables(mTabulkaZasobnik).BeginLoadData()
    Try
      daZasobnik.Fill(ds, mTabulkaZasobnik)
    Catch exc As SqlException
      MessageBox.Show(exc.ErrorCode & vbCrLf & exc.Message)
    Catch exc As Exception
      MessageBox.Show(exc.Message)
    End Try
    'ds.Tables(mTabulkaZasobnik).EndLoadData()
    'dgwZasobnik.ResumeLayout()
    'bsZasobnik.ResumeBinding()
    If HorPos > 0 And HorPos < dgwZasobnik.RowCount - 1 Then dgwZasobnik.FirstDisplayedScrollingRowIndex = HorPos
    Cursor.Current = Cursors.Default
  End Sub

Pokud mřížku zkusmo nepřipojím k objektu bsZasobnik, je načtení v obou variantách (s Clear i bez něj) stejně bleskurychlé. Zkoušel jsem přidávat spíše intuitivně další metody (viz zakomentované řádky před a za vlastním Fillem), ale bezúspěšně...

Podkladová tabulka má jednosloupcový primární klíč typu uniqueidentifier, datovy adapter ma nastaveno daZasobnik.MissingSchemaAction = MissingSchemaAction.AddWithKey

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