使用SqlDataSource查询的结果填充Literal元素

时间:2013-05-30 13:57:13

标签: asp.net sqldatasource

我有一个可能是一个非常简单的问题但是答案完全逃避了我。我是ASP.NET(vb)的新手,但我有一个坚实的经典ASP / VB背景。

我有一个相对简单的数据库,它只包含四列(Language,SiteFooterPrivacyPolicy,SiteFooterTermsAndConditions,SiteFooterCopyright)。我希望执行一个只返回1行的查询。

这是目前的主页(以及SQL SELECT语句):

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="dbtest1.aspx.vb" Inherits="dbtest1" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:SqlDataSource ID="MyLanguageDataSource" runat="server" 
                ConnectionString="<%$ ConnectionStrings:customer_support_devConnectionString %>" 
                ProviderName="<%$ ConnectionStrings:customer_support_devConnectionString.ProviderName %>" 
                SelectCommand="SELECT [SiteFooterPrivacyPolicy], [SiteFooterTermsAndConditions], [SiteFooterCopyright] FROM [language_file_2] WHERE ([Language] = 'French')">
            </asp:SqlDataSource>
            <br />
            <br /><b>Literal1PrivPolicy:</b> <asp:Literal ID="Literal1PrivPolicy" runat="server"></asp:Literal>
            <br /><b>Literal2TermsConds:</b> <asp:Literal ID="Literal2TermsConds" runat="server"></asp:Literal>
            <br /><b>Literal3Copyright:</b> <asp:Literal ID="Literal3Copyright" runat="server"></asp:Literal>
            <br />
            </div>
        </form>
    </body>
    </html>

到目前为止,我有这个代码(无法正常工作),但希望它能解释得比我能做得更好,我想要实现的目标:

    Partial Class dbtest1
        Inherits System.Web.UI.Page

        Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

            Dim dv As New Data.DataView

            dv = MyLanguageDataSource.Select(DataSourceSelectArguments.Empty)

            Literal1PrivPolicy.Text = dv.Table.Rows("SiteFooterPrivacyPolicy").ToString()
            Literal2TermsConds.Text = dv.Table.Rows("SiteFooterTermsAndConditions").ToString()
            Literal3Copyright.Text = dv.Table.Rows("SiteFooterCopyright").ToString()

        End Sub
    End Class

希望你可以看到我想要做的事情。我基本上需要使用从数据库查询返回的正确列填充的Literal元素。

1 个答案:

答案 0 :(得分:1)

我认为您应该按名称访问行,而您应该按名称访问第一行的列,例如:

Literal1PrivPolicy.Text = dv.Table.Rows(0)("SiteFooterPrivacyPolicy").ToString()