C# 如何在C中使用DataSet代替DataTable#

C# 如何在C中使用DataSet代替DataTable#,c#,sql,sql-server,htmlgenericcontrol,C#,Sql,Sql Server,Htmlgenericcontrol,我有以下模板,用从数据表接收的数据填充我的UL: DataTable dt = getData(); //Insert your datasource here foreach(DataRow row in dt.Rows){ HtmlGenericControl li = new HtmlGenericControl("li"); li.Attributes.Add("data-trait-id", row["TraitID"].ToString())

我有以下模板,用从数据表接收的数据填充我的
UL

DataTable dt = getData(); //Insert your datasource here

    foreach(DataRow row in dt.Rows){
        HtmlGenericControl li = new HtmlGenericControl("li");
        li.Attributes.Add("data-trait-id", row["TraitID"].ToString());

        HtmlAnchor a = new HtmlAnchor();
        a.Attributes.Add("data-trait-id", row["TraitID"].ToString());

        HtmlGenericControl span1 = new HtmlGenericControl("span");
        span1.Attributes.Add("class", "name");
        span1.InnerText = row["Name"].ToString();
        a.Controls.Add(span1);

        HtmlGenericControl span2 = new HtmlGenericControl("span");
        span2.Attributes.Add("class", "count");
        span2.InnerText = row["Count"].ToString();
        a.Controls.Add(span2);

        li.Controls.Add(a);
        ulSpecialty_selector.Controls.Add(li);
    }
但在我的页面中,我使用DataSet从SQL查询中获取列:

protected void Page_Load(object sender, EventArgs e)
    {
        using (OleDbConnection connection = new OleDbConnection("Provider=MSDataShape;Data Provider=SQLOLEDB;" + "Data Source=svr;Initial Catalog=db;User ID=zh;Password=zha")) {
            OleDbDataAdapter adapter = new OleDbDataAdapter("SHAPE {SELECT * FROM [db].[dbo].[BookingTable]} ", connection);

            DataSet dsLocation = new DataSet();
            adapter.Fill(dsLocation, "Location");
        }
    }
如何使用第一个代码块处理第二个代码块,以便在
UL
中生成
LI

我希望模仿以下内容:

<ul class="ulLocation" id="ulLocation2_selector" runat="server">
    <li class="liSubLocation active" data-trait-id="9">
        <a href="/locations/new-york/neighborhoods?tags[]=12&amp;tags[]=66" class="premote trait-link large btn" data-trait-id="9">
        <span class="check"><i class="icon icon-ok"></i></span>
        <span class="name">New Rochelle</span>
        <span class="count">6</span>
            </a>
    </li>
</ul>
DataSet ds = getData();
DataTable dt;
if (ds.Tables.Count > 0)
{
    dt = ds.Tables[0];
}

foreach(DataRow row in dt.Rows){

您可以轻松地将DataTable转换为DataSet,反之亦然 数据集中的数据表

//Assuming oDS is my DataSet
DataTable oDt =  oDS.Tables[0];// If you know name of datatable you may use oDS.Tables["name"]
数据表中的数据集

//Assuming oDT is your DataTable
DataSet oDs = new DataSet();
oDs.Tables.Add(oDT);

您可以轻松地将DataTable转换为DataSet,反之亦然 数据集中的数据表

//Assuming oDS is my DataSet
DataTable oDt =  oDS.Tables[0];// If you know name of datatable you may use oDS.Tables["name"]
数据表中的数据集

//Assuming oDT is your DataTable
DataSet oDs = new DataSet();
oDs.Tables.Add(oDT);

假设您正在从GetData()返回数据集,则可以更改以下内容:

<ul class="ulLocation" id="ulLocation2_selector" runat="server">
    <li class="liSubLocation active" data-trait-id="9">
        <a href="/locations/new-york/neighborhoods?tags[]=12&amp;tags[]=66" class="premote trait-link large btn" data-trait-id="9">
        <span class="check"><i class="icon icon-ok"></i></span>
        <span class="name">New Rochelle</span>
        <span class="count">6</span>
            </a>
    </li>
</ul>
DataSet ds = getData();
DataTable dt;
if (ds.Tables.Count > 0)
{
    dt = ds.Tables[0];
}

foreach(DataRow row in dt.Rows){

假设从GetData()返回数据集,则可以更改以下内容:

<ul class="ulLocation" id="ulLocation2_selector" runat="server">
    <li class="liSubLocation active" data-trait-id="9">
        <a href="/locations/new-york/neighborhoods?tags[]=12&amp;tags[]=66" class="premote trait-link large btn" data-trait-id="9">
        <span class="check"><i class="icon icon-ok"></i></span>
        <span class="name">New Rochelle</span>
        <span class="count">6</span>
            </a>
    </li>
</ul>
DataSet ds = getData();
DataTable dt;
if (ds.Tables.Count > 0)
{
    dt = ds.Tables[0];
}

foreach(DataRow row in dt.Rows){

我假设您知道数据集只是数据表的集合,并且您可以通过将数据表加载到数据集中并引用数据集中的第一个索引表,以与在第一个代码块中使用数据表相同的方式引用数据表。就这样。。DataSet dsLocation=新数据集();dsLocation.Tables[0]DataTable dt=dsLocation.Tables[0]我假设您知道数据集只是数据表的集合,您可以通过将数据表加载到数据集中并引用数据集中的第一个索引表,以与在第一个代码块中使用数据表相同的方式引用数据表。就这样。。DataSet dsLocation=新数据集();dsLocation.Tables[0]DataTable dt=dsLocation.Tables[0]谢谢。我让它起作用了,但我怎么能从我的问题中模仿李呢?因为看起来我不能生孩子了,谢谢。我让它起作用了,但我怎么能从我的问题中模仿李呢?因为看起来我不能拥有一张大张的名单child@Sikni8您可以使用ASPX中继器控件。我自己从未使用过,因为它可能对您有用。@Sikni8您可以使用ASPX中继器控件。我自己从来没用过,因为它可能对你有用。