2011-09-27 21 views
7

SQL Server tablosumda SQL Server'da düzgün çalışan bir sütun slno. (evet, bir nokta içeriyor) var. Eval() bir nokta (.) Içeren bir sütun adıyla nasıl kullanılır?

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'slno'.

Bu nasıl çözülebilir: Ancak <%#Eval("slno.")%> bir hata veriyor? Veritabanındaki sütun adını değiştiremiyorum: stored procedure'dan veri alıyorum, bu yüzden değiştiremiyorum.

<ItemTemplate> <%#Eval("slno.") %> </ItemTemplate> 
+3

sadece bir tahmin. [] parantez içine alınmasını denediniz mi? – SaQiB

+0

5 dakika önce bu sorunun tam bir kopyası vardı ... – mellamokb

+0

@SaQiB: Evet denedim; Eval (["slno."]) 'Ve" Eval ("[slno.]") 'Ancak hiçbiri Çalışıyorlar. – jams

cevap

7

kullanımı

<%# ((DataRowView)Container.DataItem)["slno."] %> 

Alternatif MSDN referans için

<%# DataBinder.Eval (Container.DataItem, "slno.") %> 

kullanımı bkz http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx

DÜZENLEME - Başka bir seçenek:

<%# DataBinder.GetPropertyValue(Container.DataItem, "slno.") %> 

DÜZENLEME 2 - yorum göre:

AFAIK Eval bazı kuralları kullanarak değerlendirir bir ifadesi olarak dize kolları - bu kurallar nokta için özel işlem var ...

GetPropertyValue OTOH bu kuralları uygulamaz (yani, Eval AFAIK için tam bir YAZIM DEĞİLDİR) ve böylece Eval'un nokta işlemenin sorunlara yol açtığı durumlarda (bu durumda olduğu gibi).

+0

Denedim ama bunların hiçbiri SAD :( – jams

+1

'da çalışmıyor. Lütfen bu sütunu döndüren saklı yordamın tam beyanını gösteriniz ... – Yahia

+0

Şimdi basit 'select tbPRecord'dan * select'i kullanmaya çalışıyorum ama yine de hata alıyorum. – jams

-2

DataBinder.eval(); eval(), nokta (.) Sonrası alanı okuyamaz.

DataBinder.GetPropertyValue(Container.DataItem, "Name of my Fields with(Parentheses)") 

ve ASP.NET VB Projesi bir cazibe gibi çalıştı:

Bunun yerine,() aşağıdaki gibi

0

DataBinder.GetPropertyValue() Ben DataBinder.GetPropertyValue kullanılmış kullanın.

İlgili konular