你好,
首先针对你这个想要在table 中显示数据的问题,有一个很简单的办法, 写一个服务器控件在td 里面, 后台直接将数据赋值给这个text 就可以了.像这样:
<td><asp:Label ID="Label1" runat="server" Text=""></asp:Label></td>
Dim sql As String = "select * from Name"
Dim con As SqlConnection = New SqlConnection("Data Source=(localdb)\MSSQLLocalDB;Integrated Security=true;Initial Catalog=mydb")
Dim dt As DataTable = New DataTable()
con.Open()
Dim cmd As SqlCommand = New SqlCommand(sql, con)
Dim dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Label1.Text += dr("Id").ToString()
End While
但是,你这个数据肯定是有多行的,所以我觉得你用table的话其实不是很合适. 我建议你用 repeater. 它是一个数据控件,可以绑定重复项的. 你只要在后台绑定数据就可以了. 前台的话用Eval().
参考这个:
<asp:Repeater ID="RepeatInformation" runat="server">
<HeaderTemplate>
<table class="tblcolor">
<tr>
<b>
<td>
Roll No
</td>
<td>
Student Name
</td>
<td>
Total Fees
</td>
</b>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="tblrowcolor">
<td>
<%#DataBinder.Eval(Container,"DataItem.RollNo")%>
</td>
<td>
<%#DataBinder.Eval(Container,"DataItem.Name")%>
</td>
<td>
<%#DataBinder.Eval(Container,"DataItem.Fees")%>
</td>
</tr>
</ItemTemplate>
<SeparatorTemplate>
<tr>
<td>
<hr />
</td>
<td>
<hr />
</td>
<td>
<hr />
</td>
</tr>
</SeparatorTemplate>
<AlternatingItemTemplate>
<tr>
<td>
<%#DataBinder.Eval(Container,"DataItem.RollNo")%>
</td>
<td>
<%#DataBinder.Eval(Container,"DataItem.Name")%>
</td>
<td>
<%#DataBinder.Eval(Container,"DataItem.Fees")%>
</td>
</tr>
</AlternatingItemTemplate>
<SeparatorTemplate>
<tr>
<td>
<hr />
</td>
<td>
<hr />
</td>
<td>
<hr />
</td>
</tr>
</SeparatorTemplate>
<FooterTemplate>
<tr>
<td>
School Records displayed
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
后台绑定数据:
Private con As SqlConnection
Private cmd As SqlCommand = New SqlCommand()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
con = New SqlConnection(ConfigurationManager.ConnectionStrings("constr").ConnectionString)
cmd.Connection = con
cmd.CommandText = "select * from student"
con.Open()
RepeatInformation.DataSource = cmd.ExecuteReader()
RepeatInformation.DataBind()
con.Close()
End Sub
首先要用到数据显示控件,翻翻书吧,然后用eval绑定
https://www.cnblogs.com/Mr_JinRui/archive/2010/07/06/1772129.html
与数据库有关的数据绑定表达式的常用方法?
1,<%#DataBind.Eval(Container.DataItem,"字段名")%>
<%#DataBind.Eval(Container.DataItem,"字段名","{0:c}") %>
还有2种不常用的:
<%# DataBinder.Eval(Container,"DataItem.字段名")%>
<%# DataBinder.Eval(Container,"DataItem.字段名",{0:c})%>
Container.DataItem相当于数据库中某个表中的一行记录,而一行可以有很多列。
最后一个参数和 String.Format的形式一样。例如c代表货币,p代表百分号,d代表短日期格式显示,f代表浮点数现实,f3代表小数点后三为,一次类推。
使用三目运算符?:的例子:
<%# DataBinder.Eval(Container.DataItem, "字段 名").ToString().Trim().Length>16?DataBinder.Eval(Container.DataItem, "字段 名").ToString().Trim().Substring(0,16):DataBinder.Eval(Container.DataItem, "字段名").ToString().Trim() %>
2,<%#Eval("字段名")%>
<%#Eval("字段名","{0:c}")%>
.NET 2.0新出现的一个方法。和DataBind.Eval()等价。
最后一个参数和 String.Format的形式一样。例如c代表货币,p代表百分号,d代表短日期格式显示,f代表浮点数现实,f3代表小数点后三位,一次类推。
使用三目运算符的例子:
<%#(Eval("性别")).ToString() =="True"?"男":"女"%>
性别字段类型为:是/否(Access),bit(sql server)
使用方法调用的例子:
<%# GetUserPhoto(Eval("PhotoPath")) %>
GetUserPhoto()的定义: