2011-09-25 16 views
6

SQL Server veritabanına karşı C# içinden yürütmek için bir ekleme sorgum var.Unicode SQL Sorgu W/Parametre yerine N Öneki

ben ekleme am sütun türü nvarchar taşımaktadır.

Ben o kolona ekleme am veri olmayan ingilizce olduğunu. Beni sunucuya olmayan ingilizce veri aktarmak amacıyla AddWithValue kullanmak için

Yeterli mi?

string dogName = "עברית"; 
using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
    using (SqlCommand command = new SqlCommand("INSERT INTO Dogs1(Name) VALUES @Name", connection)) 
    { 
    command.Parameters.AddWithValue("Name", dogName); 
    command.ExecuteNonQuery(); 
    } 
} 

Ya ben unicode ilan etmeye N öneki kullanmanız gerekir: bu örnekte olduğu gibi? Beğendiği gibi here.

cevap

3

, açıkça belirli bir veri türü olması SqlCommand parametresini ayarlayabilirsiniz. kod parçacığı altında

Bu MSDN'den doğrudan alınır http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx: aşağıdaki bağlantıyı tarafından gösterildiği gibi nvarchar olmasını ayarlamak mümkün olacak Bu açıkça oluşturulan SqlParameter örneğini kullanır

SqlParameter parameter = new SqlParameter(); 
parameter.ParameterName = "@CategoryName"; 
parameter.SqlDbType = SqlDbType.NVarChar; 
parameter.Direction = ParameterDirection.Input; 
parameter.Value = categoryName; 

ama öyle SqlCommand örneğinin SqlParameterCollection'ı indeksleyerek aynı fikir.

+0

Bu bilmek güzel, ancak her parametre için tüm bu belaya girmeli miyim? Bütün bu ekstra işler kodun okunabilirliğini azaltır ve eğer yapabilirsem gerçekten onsuz gitmek isterim. – kroiz

4

Alt kısımdaki bağlantının yalnızca SQL'de'un içinde yer alan değerleri hakkında konuştuğunu düşünüyorum.

Bildiğim kadarıyla farkındayım olarak, sahip olduğun kod kesinlikle iyi olmalı - Aksi Unicode metin belirtme yolu yoktur olurdu. Tabii

, bu doğrulayarak değer demektir - ama işe yaramadı eğer çok şaşırırsınız. Ben doğru soruyu anlama am mı

+0

lütfen cevabımı bakın. Muhtemelen bir "dizginin" dolaylı olarak nvarchar olacağı konusunda çalışacağına katılıyorum, ama veri türünün ne olduğunu açıkça belirtmenin bir yolu var. –