Warning: count(): Parameter must be an array or an object that implements Countable in /home/kazimce1/public_html/wp-content/plugins/microkids-related-posts/microkids-related-posts.php on line 645
Dataview içerisinde System.Guid tipindeki herhangi bir kolona filtre uygulamak istediğinizde ilk aklınıza gelen aşağıdaki gibi bir kullanım olacaktır.
DataView dv = new DataView(); dv.RowFilter = "TypeId in ('<guid>', '<guid>', ...)";
Yukarıdaki gibi bir kullanım ilk bakışta normal gibi gözüksede çalışma zamanında problem oluşturacak yada filtre büyüdükçe performans problemleri çıkaracaktır. Hatta uygulama çalışma zamanında “Cannot perform ‘=’ operation on System.Guid and System.String.” hatası verecektir.
Yukarıdaki örnekte Guid’leri filtreye string olarak dahil etmek yerine Convert(expression, type) metodunu kullandığımızda bu problemi önlemiş oluruz.
dv.RowFilter = "TypeId in (Convert('<guid>', 'System.Guid'), Convert('<guid>', 'System.Guid'))";
Örnek kullanım :
dv.RowFilter = "CustomerID IN (CONVERT('{7F901912-DD67-47B9-A5B3-B702B9F84680}','System.Guid'), CONVERT('{85823FC5-1F2E-4034-B1CB-6DEE954AC4D4}','System.Guid')";
Kaynak ;
0 thoughts on “Dataview’deki Guid tipindeki kolonlara uygulanan RowFilter için ipucu”