En iyi yanıtlayıcılar
Özel karakterleri veritabanına kaydetme

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ı?
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
- Yanıt Olarak İşaretleyen Cihan YakarMVP, Moderator 6 Şubat 2014 Perşembe 11:25
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
- Yanıt Olarak İşaretleyen Cihan YakarMVP, Moderator 6 Şubat 2014 Perşembe 11:25
-
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
-
Ö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. -
Ö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.