24 Mart 2010 Çarşamba

“Syntax error: Missing operand after 's' operator.” hatası, nedeni ve çözümü

Merhaba,
image
Bu hata bir DataTable nesnesi içerisinde filtreleme yaparak DataRow Array’i elde ederken yazılan söz diziminden kaynaklanıyor. rowFilter işlemide diyebiliriz.  Özel bir karakter olan “ “  karakteri ( Apostrophe, Iyelik durumu, kesme işareti ) koşul içerisindeyse bu hatayı alabilirsiniz.

Örneğin,
DataRow[] rowList = resultDt.Select(string.Format(" [{0}] = '{1}'",resultDt.Columns["Company"],"Dyn's"));
Kod parçasında Company alanında "Dyn's" bulunanları ararken "Dyn's" içerinde ki kesme işareti bize sorun yaşatır.
Çözüm,
Replace() metodunu kullanmanız yeterli olacaktır. “ ” yerine “ ’ ’ ” ,yani kesme işareti yerine 2 tane kesme işareti kullanmak yeterlidir.
DataRow[] rowList = resultDt.Select(string.Format(" [{0}] = '{1}'",resultDt.Columns["Company"],"Dyn's".Replace("'","''")));
image 
Kolay gelsin..

1 yorum: