Paramert v SQL doatzu   zodpovězená otázka

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

Zdravím, vím, že je tady na to článek, ale nějak nemůžu přijít an to jak načíst data do parametru:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

        Dim SQLDotaz As String
        Dim ConnectionString As String
        ConnectionString = "Server=localhost\SQLEXPRESS;Initial Catalog=freya_maternity;Trusted_Connection=yes;"
        Dim Conn As New SqlConnection(ConnectionString)
        Dim Cmd As New SqlCommand
        'Dim command As New SqlCommand(commandText, connection)

        SQLDotaz = " INSERT INTO Category (JmenoKategorie) VALUES (@Nazev)"
        Cmd.Parameters.AddWithValue("@Nazev", TextBox1.Text)




        Try
            'Pridani zaznamu do tabulky OK
            Conn.ConnectionString = ConnectionString
            Conn.Open()
            Cmd = New SqlCommand(SQLDotaz, Conn)
            Cmd.ExecuteNonQuery()
            TextBox1.Text = ""
        Catch ex As Exception
            'MsgBox.Show(ex.Message.ToString())
        End Try





    End Sub

V tomto případě se dotaz neprovede...

Chybu tuším v špatném načtení proměnné do parametru,, nebo špatně složeném dotazu...

Díky moc DuSan

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

To je snad jasné v čem je chyba ne ;))

Dim Cmd As New SqlCommand = "INSERT INTO Category (JmenoKategorie) VALUES (@Nazev)"

Takhle jste si jen nadefinoval instanci třídy SqlCommand,ale samotný dotaz máte v proměnné SqlDotaz.. následně se pak snažíte nahradit hodnotu v dotazu cmd,který jak je vidno žádný dotaz neobsahuje..

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

Přesně tak, třídu SqlCommand vytváříte 2x. A když ji vytvoříte podruhé (v bloku Try Catch), tak tím ztratíte ten parameter.

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

Správně:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

        Dim ConnectionString As String
        ConnectionString = "Server=localhost\SQLEXPRESS;Initial Catalog=freya_maternity;Trusted_Connection=yes;"
        
        Dim conn As New SqlConnection(ConnectionString)
        
        Dim cmd As New SqlCommand(" INSERT INTO Category (JmenoKategorie) VALUES (@Nazev)", conn)
        cmd.Parameters.AddWithValue("@Nazev", TextBox1.Text)




        Try
            'Pridani zaznamu do tabulky OK
            conn.Open()
            cmd.ExecuteNonQuery()
            TextBox1.Text = ""
        Catch ex As Exception
            'MsgBox.Show(ex.Message.ToString())
        End Try





    End Sub

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

Díky, už to vidím...

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