Ulozeni databaze   otázka

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

Zdarek lidi,

Pridavam do seznamu polozek jmenopolozky

Seznam je navazny na Listbox,

v listboxu se polozka zobrazi, kdyz ale

program znovu spustim chybi pridana polozka.

Dim drNew As System.Data.DataRow
drNew = Me.ND_DataSet.Seznam.NewRow
drNew.BeginEdit()
drNew.Item(0) = JmenoPolozky
Me.ND_DataSet.Seznam.Rows.Add(drNew)

Dim SQLprikaz As New SqlCommand()
SQLprikaz.CommandTimeout = 30
SQLprikaz.CommandType = Data.CommandType.Text
SQLprikaz.CommandText = "INSERT INTO [Tabulka] ([Slp_1])   
  VALUES ('" & JmenoPolozky & "')"

Muzete mi prosim poradit kde delam chybu,

dekuji predem

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

Zaprvé pro zápis bloků kódu používejte tlačítko VB code, ať to nemusíme dělat za vás.

S tím příkazem je problém, že ho jen vytvoříte, ale nikdy nespustíte - chtělo by to mít otevřené spojení do databáze a na příkazu zavolat ExecuteNonQuery.

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

Do sveho projektu jsem vlozil tento kod dle Vasi rady (snad jsem to pochopil správne) :

Dim SQLprikaz As New SqlCommand()
Dim Spojeni As SqlConnection

Spojeni = New SqlConnection(My.Settings.NdDataConnectionString)
Spojeni.Open()

SQLprikaz = New SqlCommand("INSERT INTO [Tabulka] ([Slp_1]) VALUES ('JKL')")

SQLprikaz.ExecuteNonQuery()
Spojeni.Close()


Bohuel mi to stejne neslape...kdepak sem asi urobil botku?

dekuji za odpoved

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

To:

SQLprikaz = New SqlCommand("INSERT INTO [Tabulka] ([Slp_1]) VALUES ('JKL')")

bych dal před Spojeni.Open()

Jinak máte naimportovaný... System.Data.SqlClient myslím?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Super, tak mi to funguje, kod jsme upravil následujícím způsobem :

Dim cnSQL As SqlConnection
Dim cmSQL As SqlCommand
Dim strSQL As String
Dim intRowsAffected As Integer

On Error GoTo chyba

strSQL = Prikaz
cnSQL = New SqlConnection(ConnectionString)
cmSQL = New SqlCommand(strSQL, cnSQL)         'pripadne umistit za OPEN
cnSQL.Open()
intRowsAffected = cmSQL.ExecuteNonQuery()
If intRowsAffected <> 1 Then
    MsgBox(" Failed")
End If
cnSQL.Close()
cmSQL.Dispose()
cnSQL.Dispose()

sqlcommand jsem mel i za prikazem OPEN-em a tak to taky slapalo, nicmene dle predchozi rady jsem to dal pred.

diky vsem za rady, doufam ze uvedeny kod pomuze i dalsim

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