prikaz delete, ms sql, vystup chybovej hlasky   otázka

VB.NET, SQL

Zdravim.

Mam takyto jednoduchy kod, na zmazanie jedneho riadku v ms sql databaze.

Niekedy funguje, a dojde k zmazaniu riadku, inokedy nie.

Chybu mi nevracia ziadnu. Viem zistit, kolko riadkov bolo zmazanych ale ak je tam chyba tak neviem aka ani ze tam je. Neviem ako mam zistit preco raz zmaze a inokedy nie.

Dim connection As SqlConnection = New SqlConnection(f_hlavny.prip_string_prop)
cmd.Connection = connection
connection.Open()
cmd.CommandText = " delete from tabulka where id= 25" 
cmd.ExecuteNonQuery()
cmd.Dispose()
connection.Close()

Myslim si, ze zaznam je blokovany nejakym inym updatom.

Karol

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

Píšu to takhle a funguje to vždy.

condb.Open()
Dim strSmaz As New SqlCommand("DELETE FROM Tabulka WHERE id = @id", condb)
strSmaz.Parameters.AddWithValue("@id", id)
strSmaz.ExecuteNonQuery()
condb.Close()

Kdyby byl záznam blokovaný, asi by to vyhodilo nějakou vyjímku...

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

Medzicasom som nasiel chybu, zle som odovzdaval @id.

Zaznam neslo zmazat, pretoze uz tam taky v databaze ani nebol.

Preto nebola ziadna chyba.

Dakujem za pomoc.

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

Já ještě doplním, že metoda SqlCommand.ExecuteNonQuery vrací počet ovlivněných řádků v databázi. V tomto konkrétním případě 1 pokud je smazán a 0, pokud tam řádek s poskytnutým ID není.

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

Ano, to som vedel.

Len som sa mylne domnieval, ze problem je v databaze. Mal som viac problemov s zamknutim riadku databazy v ten den a preto som predpokladal, ze je to podobny problem.

Moja chyba. Snad to niekomu pomoze.

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

A slyšel jste o klíčovém slově using.

Pokud ve vašem kódu nastane nějaká chyba (což je dost snadné - například pokud bude na daný záznam v db existovat záznam s FK), tak se vám neuzavře spojení do databáze.

nahlásit spamnahlásit spam 1 / 1 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