これは機能します:
Dim cmdSelect As Data.SqlClient.SqlCommand
Dim dtr As Data.SqlClient.SqlDataReader
Dim strSelect As String
strSelect = "SELECT DISTINCT DVIRDate FROM dbo.tblDVIR " _
& "WHERE (DVIRDate > DATEADD(day, - 30, { fn NOW() }))"
cmdSelect = New Data.SqlClient.SqlCommand(strSelect, ConDB)
ConDB.Open()
dtr = cmdSelect.ExecuteReader()
'Bind to Repeater
Repeater1.DataSource = dtr
Repeater1.DataBind()
dtr.Close()
ConDB.Close()
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "DvirDate")%>
<br />
</ItemTemplate>
</asp:Repeater>
しかし、これはしません:
Dim db As New DataContext
Dim sel = From a In db.tblDVIRs _
Where a.DVIRDate > DateAdd(DateInterval.Day, -30, Now()) _
Select a.DVIRDate _
Distinct
Repeater1.DataSource = sel
Repeater1.DataBind()
「DataBinding:'System.DateTime'に'DvirDate'という名前のプロパティが含まれていません」というHttpExceptionが発生します。
興味深いことに、自動生成された列= trueでグリッドビューにバインドすると、それが機能し、列の名前は「アイテム」になります。
で正しい表現を使用していないのですか、databinder.eval
それとも何か間違ったことをしているのですか?これはLinqでは簡単なはずです。私はで考えられるすべてのことを試しましたdatabinder.eval()
。何かが足りないに違いありません。