Insert do sdf   otázka

VB.NET, SQL, ADO.NET

Zdravím,

mám problém s uložením dat do sdf databáze. Data se v databázi vůbec nezapíší, ale taky nevyhodí žádnou vyjímku, můžeme mi, prosím, poradit, kde dělám chybu?

            Dim cmd1 As New SqlCeCommand
            cmd1.Connection = ConnCeSQL
            cmd1.CommandType = CommandType.Text
            cmd1.CommandText = "INSERT INTO Shromazdeni (Datum, Nazev, Adresa, Mesto, PSC, OnLine, Sprava_ID, PovolitSlucovani, PovolitDopocitani) " & _
                "VALUES (@Datum, @Nazev, @Adresa, @Mesto, @PSC, @OnLine, @Sprava_ID, @PovolitSlucovani, @PovolitDopocitani)"

            Dim CheckedIdObj As Integer
            If f.CheckedListBoxControl1.CheckedItems.Count > 0 Then
                Dim CheckedChckbox As DevExpress.XtraEditors.Controls.CheckedListBoxItem
                For Each CheckedChckbox In f.CheckedListBoxControl1.Items
                    If CheckedChckbox.CheckState = CheckState.Checked Then CheckedIdObj = CheckedChckbox.Value
                Next
            End If

            Dim row As DataRow = (From r As DataRow In dsData.Tables("Spr_SeznamObjektu") Where (CType(r("UcJedn_ID"), Integer) = CheckedIdObj)).First

            cmd1.Parameters.AddWithValue("Nazev", row.Item("UcJedn_InterniNazev").ToString)
            cmd1.Parameters.AddWithValue("Datum", f.DateEdit1.EditValue)
            cmd1.Parameters.AddWithValue("Adresa", row.Item("UcJedn_Adresa").ToString)
            cmd1.Parameters.AddWithValue("Mesto", row.Item("UcJedn_Mesto").ToString)
            cmd1.Parameters.AddWithValue("PSC", row.Item("UcJedn_Psc").ToString)
            cmd1.Parameters.AddWithValue("OnLine", f.CheckEdit1.Checked)
            cmd1.Parameters.AddWithValue("Sprava_ID", row.Item("UcJedn_ID"))
            cmd1.Parameters.AddWithValue("PovolitSlucovani", f.CheckEdit4.Checked)
            cmd1.Parameters.AddWithValue("PovolitDopocitani", f.CheckEdit3.Checked)

            Try
                ConnCeSQL.Open()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

            cmd1.ExecuteNonQuery()

Díky M.

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

1) Zkontroloval jste, jestli jsou vůbec nějaké hodnoty ve druhém předaném parametru metod AddWithValue?

2) Jakou hodnotu vrací ExecuteNonQuery?

3) Ošetření vyjímek máte řešeno naprosto idiotsky - přesně na řádku, na kterém je nejmenší pravděpodobnost, že k nějaké dojde.

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

Díky za reakci,

add 1) hodnoty jsou, i když nahradím stringem, nezapíší se

add 2) vrací 1

add 3) díky, jde ale o vytržený kus kódu

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

Pokud jde o vytržený kus kódu, pak nemá smysl řešit, proč nefunguje. Vložte sem kompletní kód, který má zajišťovat ukládání do databáze.

P.S.: Doufám, že někde neudržujete spojení do databáze po celou dobu běhu aplikace...

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

A není třeba Sprava_ID jako AutoIncrement sloupec v DB ? Pokud ano, to se samozřejmě jako vstupní parametr nedává.

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

Ano, ale to by mělo vyvolat vyjímku ne?

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