VB.NET通过For Each Loop在Webforms页面中打印DataSet数据
问题描述:
我在后面的代码中使用以下代码将数据传递到我的aspx页面。VB.NET通过For Each Loop在Webforms页面中打印DataSet数据
Public Function GetFirstElement() As DataSet
Dim ds As New DataSet
Dim alUtil As New ALUtility
Dim connString As String = AppSettings("conSQL")
Using cnn As New SqlConnection(connString)
cnn.Open()
Using dad As New SqlDataAdapter("SELECT TOP 10 * FROM case", cnn)
dad.Fill(ds)
End Using
cnn.Close()
End Using
Return ds
End Function
而且我通过内部aspx页面试图循环使用下面的代码
<% For Each dataRow As Data.DataRow In Me.GetFirstElement().Tables(0).Rows %>
<div class="widget-body padset-lg">
<div class="row cancel-paddings">
<div class="col-md-1">
</div>
<div class="col-md-11">
<h2 class="darker-text font-size-sm fonts-tight cancel-margin fonts-bold margset-bottom-md">
<%= dataRow["short_description"].ToString() %></h2>
<p class="pale-text font-size-sm cancel-margin fonts-bold">
<%= dataRow["case_id"].ToString() %></p>
<p class="darker-text font-size-xs fonts-tight fonts-bold cancel-margin">
Medium Priority, New<br />
John Doe ABC Company,
<br />
10.23AM, 12/11/2016</p>
</div>
</div>
<div class="card-content height-auto">
</div>
</div>
</div>
<% Next%>
当我尝试运行这个循环我收到以下错误。
BC30203:预期标识符。
有人可以帮助我做到这一点。我是C#程序员,也是VB.NET的新手。我已经成功地使用C#循环,但在VB中相同的方法无法正常工作。我也尝试过asp:Repeater。与此我得到“容器未定义”错误。
答
如果我们去掉所有的HTML标记不包括ASP.NET特殊的,我们得到这个循环结构:
<% For Each dataRow As Data.DataRow In Me.GetFirstElement().Tables(0).Rows %>
<%-- omitted --%>
<%= dataRow["short_description"].ToString() %>
<%-- omitted --%>
<%= dataRow["case_id"].ToString() %>
<%-- omitted --%>
<% Next %>
很清楚地看到,dataRow
为System.Data.DataRow
数组来表示单列,所以你需要使用圆括号(...)
的而不是方括号[...]
提的VB.NET背景列名时:
<% For Each dataRow As Data.DataRow In Me.GetFirstElement().Tables(0).Rows %>
<%-- omitted --%>
<%= dataRow("short_description").ToString() %>
<%-- omitted --%>
<%= dataRow("case_id").ToString() %>
<%-- omitted --%>
<% Next %>
参考:
答
酪氨酸这(后面的代码)情况应该[DBO]。[案例]。
Public Function GetFirstElement() As DataSet
Dim ds As New DataSet
Dim alUtil As New ALUtility
Dim connString As String = AppSettings("conSQL")
Using cnn As New SqlConnection(connString)
cnn.Open()
Using dad As New SqlDataAdapter("SELECT TOP 10 * FROM [dbo].[case]", cnn)
dad.Fill(ds)
End Using
cnn.Close()
End Using
Return ds
End Function
你的aspx代码<%=数据行[ “SHORT_DESCRIPTION”]。的ToString()%>应<%=数据行( “SHORT_DESCRIPTION”)。的ToString()%>。
<div class="widget-body padset-lg">
<div class="row cancel-paddings">
<div class="col-md-1">
</div>
<div class="col-md-11">
<h2 class="darker-text font-size-sm fonts-tight cancel-margin fonts-bold margset-bottom-md">
<%= dataRow("short_description").ToString() %></h2>
<p class="pale-text font-size-sm cancel-margin fonts-bold">
<%= dataRow("case_id").ToString() %></p>
<p class="darker-text font-size-xs fonts-tight fonts-bold cancel-margin">
Medium Priority, New<br />
John Doe ABC Company,
<br />
10.23AM, 12/11/2016</p>
</div>
</div>
<div class="card-content height-auto">
</div>
</div>
它的工作,并感谢您的帮助! – thilanka1989