如何格式化DataSet以在单个列中包含多个数据?

时间:2012-05-21 12:18:56

标签: c#

我的情况如下:从DB我得到的数据就像

-------------------------------------------------
ID  BOOK_NAME AUTHOR REMARKS
1   ASP.Net   xyz    It is a good book.
1   ASP.Net   xyz    I like this book.
1   ASP.Net   xyz    It worth buying.
2   C#.net    abc    It is a average book.
2   C#.net    abc    It is good for beginner.
--------------------------------------------------

正如您所看到的,我对特定的书籍细节有多个评论。我将它作为DataSet获取。我的问题是删除重复的行并将其设置为类似于DataSet。

-------------------------------------------------
ID  BOOK_NAME AUTHOR REMARKS
1   ASP.Net   xyz    It is a good book.
                     I like this book.
                     It worth buying.
2   C#.net    abc    It is a average book.
                     It is good for beginner.
--------------------------------------------------

创建DataSet后,我必须使用dataSetObj.GetXml();

转换为XML

知道如何在C#中执行此操作吗?

2 个答案:

答案 0 :(得分:0)

您可以将剩余的行留空。据我所知,您无法自己创建自定义数据集。

答案 1 :(得分:0)

将您的数据放入DataTable

存储第一行的第一个单元格内容

从第2行到结束遍历整个网格 并检查Name列的值是否相同。 如果相同,则用空字符串替换该值 否则继续使用新值。上述过程将重演

private void GenerateUniqueData(int cellno)
{
    //Logic for unique names

    //Step 1:

    string initialnamevalue = grdUniqueNames.Rows[0].Cells[cellno].Text;

    //Step 2:        

    for (int i = 1; i < grdUniqueNames.Rows.Count; i++)
    {

        if (grdUniqueNames.Rows[i].Cells[cellno].Text == initialnamevalue)
            grdUniqueNames.Rows[i].Cells[cellno].Text = string.Empty;
        else
            initialnamevalue = grdUniqueNames.Rows[i].Cells[cellno].Text;
    }
}