中继器不重复:0)(asp.net)(vb)

时间:2010-04-15 07:23:46

标签: asp.net vb.net syntax repeater sqldatareader

Morning stackoverflow,

我有一个转发器,在我的aspx页面中包含以下代码;

<asp:Repeater ID="Contactinforepeater" runat="server">
<HeaderTemplate>
<h1>Contact Information</h1>
</HeaderTemplate>

<ItemTemplate>
<table width="50%">
<tr>
<td colspan="2"><%#Container.DataItem("position")%></td>
</tr>
<tr>
<td>Name:</td>
<td><%#Container.DataItem("surname")%></td>
</tr>
<tr>
<td>Telephone:</td>
<td><%#Container.DataItem("telephone")%></td>
</tr>
<tr>
<td>Fax:</td>
<td><%#Container.DataItem("fax")%></td>
</tr>
<tr>
<td>Email:</td>
<td><%#Container.DataItem("email")%></td>
</tr>
</table>
</ItemTemplate>

<SeparatorTemplate>
<br /><hr /><br />
</SeparatorTemplate>

</asp:Repeater>

然后我在aspx.vb中有了这段代码来获取数据;

If did = 0 Then
            s = "sql works on db server"
            x = New SqlCommand(s, c)
            x.Parameters.Add("@contentid", Data.SqlDbType.Int)
            x.Parameters("@contentid").Value = contentid
            c.Open()
            r = x.ExecuteReader
            r.Read()
            Contactinforepeater.DataSource = r
            Contactinforepeater.DataBind()
        End If
        c.Close()
        r.Close()

        If Not did = 0 Then
            s = "sql works on db server"
            x = New SqlCommand(s, c)
            x.Parameters.Add("@contentid", SqlDbType.Int)
            x.Parameters("@contentid").Value = contentid
            x.Parameters.Add("@did", SqlDbType.Int)
            x.Parameters("@did").Value = did
            c.Open()
            r = x.ExecuteReader
            r.Read()
            Contactinforepeater.DataSource = r
            Contactinforepeater.DataBind()
        End If
        r.Close()
        c.Close()

如果'did'是'0'还是不'0',我仍然没有输出到页面的数据。我只是从标题模板中获取“联系信息”h1标题。

我已经用sqlsms测试了s的值,它运行正常。数据库中存在位置,姓氏,电话,传真,电子邮件。我检查的特定页面存在,并附有一组联系信息。

我哪里错了?

谢谢!

PS。我的语法是否正确?

PPS。我也对实现相同结果的不同方式持开放态度。我尝试通过sqldatasource但在使用变量作为params时遇到问题(没有选择它们的选项,只有控件,查询字符串等)

1 个答案:

答案 0 :(得分:0)

解决方案是将代码隐藏块更改为;

 If r.HasRows Then
                Contactinforepeater.DataSource = r
                Contactinforepeater.DataBind()
            End If

干杯