Úprava dat v tabulce bez klíče   zodpovězená otázka

VB.NET, WinForms

Dobrý den,

mám tabulku (dbf), kterou připojuji do VB.NET aplikace (VS2013Express). Jedná se o tarify hovorů, které používá telefonní ústředna k účtování. Tato tabulka však nemá klíč, podle kterého by byly jednoznačně identifikovatelné jednotlivé záznamy.

Struktura vypadá takto:

UZEL SMER TARIF TARIF1 TARIF2 TYP DOBA

AUSTRÁLIE – MOB; 0061427; 8,83 Kč; 8,83 Kč; 8,83 Kč; 3; 0;

AUSTRÁLIE – MOB; 0061428; 8,83 Kč; 8,83 Kč; 8,83 Kč; 3; 0;

AUSTRÁLIE – MOB; 0061429; 8,83 Kč; 8,83 Kč; 8,83 Kč; 3; 0;

AUSTRÁLIE – MOB; 0061438; 8,83 Kč; 8,83 Kč; 8,83 Kč; 3; 0;

Uměl by mi někdo poradit, jak v takovéto tabulce provádět změny pomocí SQL příkazů? Zkoušel jsem to i pomocí BindingNavigatoru, ale hází to chybu

"Additional information: Metoda Update vyžaduje při předání kolekce DataRow se změněnými řádky platnou událost UpdateCommand."

Kód si vygenerovalo samo visual studio

Private Sub U_TARIFBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles U_TARIFBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.U_TARIFBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.UstrednaDataSet)

    End Sub

Do struktury tabulky zasahovat nemůžu...

Jak by se toto mělo řešit? Děkuji za pomoc

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

tak nic...

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

To, že v tabulce není primary key, je relativně logické, vzhledem k jejímu využití. Jaké změny chcete provádět? Využíváte EF?

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

Je to vyloženě jen tabulka cen hovorů. Původně jsem chtěl mít možnost změnit kompletně celý řádek, ale nakonec jsem to vyřešil tak, že změny se týkají pouze sloupců tarif, tarif1, tarif2, typ, doba a odkazuji se při určení konkrétního záznamu na kombinaci hodnot sloupců UZEL a SMER. Kombinace těchto dvou hodnot tam není dvakrát stejná, takže tím lze nahradit tzv. unikátnost PK. Když budu chtít změnit celý řádek, prostě ho musím smazat a vytvořím nový...

EF nevyužívám, bo se mi zatím nedaří do jeho "fungování" proniknout...

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

A v čem je tedy problém? Ani do LINQ jste zatím nepronikl - v mnoha ohledech Vám to usnadní život, psát databázové operace Vaším způsobem je relativně "zastaralý" způsob, jež je aktuálně nepříliš doporučovaný pro globální přístup k DB. Čím dříve proniknete do LINQ,EF a obecně modelového světa, tím lépe.

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