none
Özel karakterleri veritabanına kaydetme RRS feed

  • Soru

  • MSSQl server veya ACCESS veritabanına kayıt eklerken textbox içinde bulunan html kodlarını veya ' " şeklinde tek veya çift tırnak olan karakterleri veritabanına kaydederken problem yaşıyoruz özel karakterleri veri tabanına eklemenin veya almanın bir yolu var mı?
    6 Şubat 2014 Perşembe 10:46

Yanıtlar

Tüm Yanıtlar

  • Parameter kullanırsanız bunlarla uğraşmanıza gerek kalmaz. Hepsini kendi ayarlar.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    6 Şubat 2014 Perşembe 11:00
    Moderatör
  • Teşekkürler Önay bey , dediğiniz şekilde internette arayıp sorunu çözdüki çalışmalar

    çözümde şöyle

    Imports System.Data.SqlClient
    Public Class SQL_Parametre_Kullanimi
    Public sqlbag As SqlConnection
    Public sqlParametre As New SqlClient.SqlParameter
    Public cmd As New SqlCommand
    Function FuncBAGLAN()
    sqlbag = New SqlConnection
    sqlbag.ConnectionString = "" 'tarafınızdan doldurulması gereken alan.
    Return sqlbag
    End Function
    Sub ekleme()
    Try
    FuncBAGLAN()
    sqlbag.Open()
    cmd = sqlbag.CreateCommand
    cmd.CommandText = "INSERT INTO ActiveProductsFedarated(Productname) VALUES(@Productname)"
    cmd.Parameters.Add("@Productname", SqlDbType.NVarChar, 40)
    cmd.Parameters(0).Value = "Mehmet Efendi'nin bodrum katında ürettiği 82 ekran lcd tvlerin ilk çıkan modeli konusunda yapılan yorumların hepsini geçen yorum vs vs vs"
    cmd.ExecuteNonQuery()
    Catch ex As Exception
    MsgBox(ex.Message & " şeklinde bir hata yüzünden veri eklenmedi.")
    Finally
    If sqlbag.State = ConnectionState.Open Then sqlbag.Close()
    cmd.Parameters.Clear()
    End Try
    End Sub
    Sub hataliekleme()
    Try
    FuncBAGLAN()
    sqlbag.Open()
    cmd = sqlbag.CreateCommand
    Dim eklenen As String = "Mehmet Efendi'nin bodrum katında ürettiği 82 ekran lcd tvlerin ilk çıkan modeli konusunda yapılan yorumların hepsini geçen yorum vs vs vs"
    cmd.CommandText = "INSERT INTO ActiveProductsFedarated(Productname) VALUES('" & eklenen & "') "
    cmd.ExecuteNonQuery()
    Catch ex As Exception
    MsgBox(ex.Message & " şeklinde bir hata yüzünden veri eklenemedi.")
    Finally
    If sqlbag.State = ConnectionState.Open Then sqlbag.Close()
    End Try
    End Sub
    Sub guncelleme()
    Try
    FuncBAGLAN()
    sqlbag.Open()
    Dim cmd As New SqlCommand
    cmd = sqlbag.CreateCommand
    cmd.CommandText = "UPDATE ActiveProductsFedarated SET Productname=@Productname WHERE ProductID=@ProductID"
    cmd.Parameters.Add("@ProductID", SqlDbType.Int)
    cmd.Parameters.Add("@Productname", SqlDbType.NVarChar, 40, "ProductName")
    cmd.Parameters(0).Value = 77
    cmd.Parameters(1).Value = "Mehmet Efendi'nin bodrum katında ürettiği 82 ekran lcd tvlerin ilk çıkan modeli konusunda yapılan yorumların hepsini geçen yorum vs vs vs"
    Catch ex As Exception
    MsgBox(ex.Message & " şeklinde bir hata yüzünden güncelleme yapılamadı.")
    Finally
    If sqlbag.State = ConnectionState.Open Then sqlbag.Close()
    cmd.Parameters.Clear()
    End Try
    End Sub
    Sub silme()
    Try
    FuncBAGLAN()
    sqlbag.Open()
    Dim cmd As New SqlCommand
    cmd = sqlbag.CreateCommand
    cmd.CommandText = "DELETE FROM ActiveProductsFedarated WHERE ProductID=@ProductID"
    cmd.Parameters.Clear()
    cmd.Parameters.Add("@ProductID", SqlDbType.Int)
    cmd.Parameters(0).Value = 21
    cmd.ExecuteNonQuery()
    Catch ex As Exception
    MsgBox(ex.Message & " şeklinde bir hata yüzünden güncelleme yapılamadı.")
    Finally
    If sqlbag.State = ConnectionState.Open Then sqlbag.Close()
    cmd.Parameters.Clear()
    End Try
    End Sub
    Sub readerilealma()
    Dim liste As New Collection
    Try
    FuncBAGLAN()
    sqlbag.Open()
    Dim cmd As New SqlCommand
    cmd = sqlbag.CreateCommand
    cmd.CommandText = "SELECT * FROM ActiveProductsFedarated WHERE Productname=@Productname"
    cmd.Parameters.Clear()
    cmd.Parameters.Add("@Productname", SqlDbType.NVarChar, 40, "ProductName")
    cmd.Parameters(0).Value = "LED TV"
    Dim dr As SqlDataReader
    dr = cmd.ExecuteReader
    liste.Clear()
    Do While dr.Read
    liste.Add(dr("ProductName"))
    Loop
    MsgBox(liste.Count)
    Catch ex As Exception
    MsgBox(ex.Message & " şeklinde bir hata yüzünden veri okunamadı.")
    Finally
    If sqlbag.State = ConnectionState.Open Then sqlbag.Close()
    cmd.Parameters.Clear()
    End Try
    End Sub
    Sub datasetilealma()
    Try
    FuncBAGLAN()
    sqlbag.Open()
    Dim cmd As New SqlCommand
    Dim da As New SqlDataAdapter
    Dim ds As New DataSet
    ds.Clear()
    cmd = sqlbag.CreateCommand
    cmd.CommandText = "SELECT * FROM ActiveProductsFedarated"
    da.SelectCommand = cmd
    da.Fill(ds, "ActiveProductsFedarated")
    'Datagridview1.DataSource = ds
    'Datagridview1.DataMember = "ActiveProductsFedarated"
    Catch ex As Exception
    MsgBox(ex.Message & " şeklinde bir hata yüzünden datasete veri alınamadı.")
    Finally
    If sqlbag.State = ConnectionState.Open Then sqlbag.Close()
    cmd.Parameters.Clear()
    End Try
    End Sub
     
    End Class

    6 Şubat 2014 Perşembe 11:42
  • Önay'in dedigi gibi parametre kullaniyoruz ve hic sorun yasamiyoruz.

    Bir baska ve daha basit sekli ise Linq kullanmak. O zaman zaten ister istemez dogal olarak parametre kullanmis oluyorsun ve bu problemi hic yasamiyorsun, o kadar uzun kod yazmana da gerek kalmiyor. Ornegin:

    Dim p = New ActiveProductsFederated() With { .ProductName = "Mehmet Efendi'nin bodrum katında ürettiği 82 ekran lcd tvlerin ilk çıkan modeli konusunda yapılan yorumların hepsini geçen yorum vs vs vs" } 
    db.ActiveProductsFederated.InsertOnSubmit(p)
    db.SubmitChanges()
    

    Not: Yukaridaki Linq To SQL. Eger sadece MS SQL kullanacagindan emin degilsen, Linq To EF kullan. Cok az yazim farki var.

    6 Şubat 2014 Perşembe 12:21
  • Önay'in dedigi gibi parametre kullaniyoruz ve hic sorun yasamiyoruz.

    Bir baska ve daha basit sekli ise Linq kullanmak. O zaman zaten ister istemez dogal olarak parametre kullanmis oluyorsun ve bu problemi hic yasamiyorsun, o kadar uzun kod yazmana da gerek kalmiyor. Ornegin:

    Dim p = New ActiveProductsFederated() With { .ProductName = "Mehmet Efendi'nin bodrum katında ürettiği 82 ekran lcd tvlerin ilk çıkan modeli konusunda yapılan yorumların hepsini geçen yorum vs vs vs" } 
    db.ActiveProductsFederated.InsertOnSubmit(p)
    db.SubmitChanges()
    

    Not: Yukaridaki Linq To SQL. Eger sadece MS SQL kullanacagindan emin degilsen, Linq To EF kullan. Cok az yazim farki var.

    teşekkürler bu kod daha iyi oldu
    6 Şubat 2014 Perşembe 12:46