我有一个可能是一个非常简单的问题但是答案完全逃避了我。我是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元素。
答案 0 :(得分:1)
我认为您应该按名称访问行,而您应该按名称访问第一行的列,例如:
Literal1PrivPolicy.Text = dv.Table.Rows(0)("SiteFooterPrivacyPolicy").ToString()