2016-04-01 13 views
0

SQLSERVER \ SQLSERVER'in bir SQL Server adı verildiğinde, SqlConnectionStringBuilder, sunucu adında ters eğik çizgi önünde bir kaçış char gerektirir.SqlConnectionStringBuilder, sunucu adı bir ters eğik çizgi içeriyorsa, bir kaçış char gerektiriyor

+0

İkincisini temsil eder, ancak SqlConnectionStringBuilder gerektirdiği için değildir. Bu gereklidir çünkü C# 'da bir ters çevirme, bir sonraki karaktere kaçar. Yani ilk örneğiniz "SQLSERVER QLSERVER" olacaktır. İşe gitmeyecek ( tanınmayan bir çıkış sırasıdır) – Steve

+0

Dizelerdeki tek çıkış karakterlerini işlemek için SqlConnectionStringBuilder sınıfında bir şeyler pişirmiş olabilirlerdi ... bu yüzden soruyorum. –

+0

Görüyorsunuz, ancak bu dize (ilk örnek) C# derleyicisi için bir sözdizimi hatası, sınıf kurucusuna ulaşmanın bir yolu yok – Steve

cevap

0

İlk örnek kullanamazsınız, çünkü bu kod C# derleyicisine bir sözdizimi hatası verir. Tek bir temsil etmek için iki ters eğik çizgi olmasını gerektiren C# dilidir. Eğer iki ters eğik çizgi kullanmazsanız, C# ayrıştırıcısı aşağıdaki karakteri (S) 'kaçmaya' çalışır; ancak \ S için hiçbir çıkış sırası yoktur ve böylece hatayı alırsınız.

CS1009 Unrecognized escape sequence 

, sadece bir örnek olarak, sunucu "testdb" o zaman derleme geçecek

var sqlConnStrBuilder = new SqlConnectionStringBuilder 
{ 
    DataSource = "SQLSERVER\testdb" 
}; 

yazma (küçük harf) olarak adlandırılan ancak \ t tanınan çünkü bağlantının açılması başarısız kaçış dizisi ve bir SEKME karakteri olarak kabul edilir (09).

Sen bulacaksınız dosyanın hexdecimal içeriği bakarak sonra bu

void Main() 
{ 
    File.WriteAllText(@"d:\temp\testescapechar.txt", "SQLSERVER\testdb"); 
} 

ve benzeri basit bir kodla eylem bu görebiliyordu:

0: 53 51 4C 53 45 52 56 45 52 09 65 73 74 64 62 
    S Q L S E R V E R ^^ e s t d b 

sana söylemeyi unutmuşum

Yazmaya izin veren gerçek yazım dizgisi sözdizimini kullanabilirsiniz. o @ karakteri, kaçış dizisi düzenini geçersiz kılar ve karakterleri, tek bir ters eğik çizginin kendisini temsil etmesine izin vererek,

İlgili konular