如何将数据集值获取到c#中的自定义表中
本文关键字:自定义 获取 数据集 | 更新日期: 2023-09-27 18:20:53
这里我正在尝试将从数据库检索到的值转换为我的自定义表格式。现在我正在将值存储到数据集中。
protected void Page_Load(object sender, EventArgs e)
{
String userID = Convert.ToString(Session["user_id"]);
if (string.IsNullOrEmpty(userID) == true)
{
Response.Redirect("login.aspx");
}
try {
string scon="SERVER=localhost;DATABASE=bmtc;UID=root;";
MySqlConnection con = new MySqlConnection(scon);
String s = "select * from application";
MySqlDataAdapter dat = new MySqlDataAdapter(s, con);
DataSet ds = new DataSet();
dat.Fill(ds,"tbl");
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}
catch(Exception ex){
// Label1.Text = ex.ToString();
}
}
Asp代码:
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
我需要将每个单独的值保存在表中。像
<table class="custom-table" id="preview-table">
<tr><td>Name</td><td><% value1 %></td></tr>
<tr><td>Address</td><td><% value2 %></td></tr>
<tr><td>Phone</td><td><% value3 %></td></tr>
....
</table>
我该怎么做?
您可以使用listview
<asp:ListView ID="listview1" runat="server" ItemPlaceholderID="itemPlaceHolder1">
<LayoutTemplate>
<table class="custom-table" id="preview-table">
<tr>
<th>
Header1
</th>
<th>
Header2
</th>
<th>
Header3
</th>
</tr>
<tr><asp:PlaceHolder runat="server" ID="itemPlaceHolder1"></asp:PlaceHolder></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<td>
<%# Eval("Column1") %>
</td>
<td>
<%# Eval("Column2") %>
</td>
<td>
<%# Eval("Column3") %>
</td>
</ItemTemplate>
</asp:ListView>
服务器端代码:
protected void Page_Load(object sender, EventArgs e)
{
String userID = Convert.ToString(Session["user_id"]);
if (string.IsNullOrEmpty(userID) == true)
{
Response.Redirect("login.aspx");
}
try {
string scon="SERVER=localhost;DATABASE=bmtc;UID=root;";
MySqlConnection con = new MySqlConnection(scon);
String s = "select * from application";
MySqlDataAdapter dat = new MySqlDataAdapter(s, con);
DataSet ds = new DataSet();
dat.Fill(ds,"tbl");
listview1.DataSource = ds.Tables[0];
listview1.DataBind();
}
catch(Exception ex){
// Label1.Text = ex.ToString();
}
}
欲了解更多信息,请访问以下链接
listView示例,listView示例2
正如我的评论中所提到的,ASP.NET Gridview
控件无论如何都会在浏览器中呈现为Html表,因此它们不需要单独定义自定义表。现在,默认情况下,gridview的AutoGenerateColumns
属性是true
,所以如果您只是用程序绑定数据(就像现在所做的那样),它将呈现一个表。
如果您不想显示任何特定的列,那么不要从DB中获取它,或者将AutoGenerateColumns
属性设置为false
,并为每列添加BoundField。
尽管您当前的代码存在一些问题,但首先您应该只在初始获取请求时绑定数据,即不要在每次回发后绑定数据:-
protected void Page_Load(object sender, EventArgs e)
{
//code to get user_id
If(!PostBack)
{
//code to bind gridview.
}
}
除此之外,您应该将连接字符串存储在Web.Config
文件中。您应该考虑使用using语句来处理昂贵的数据库相关对象。