I have another way, you can set the htmlencoding property of Sno column of your second grid to false and use the br tag
Your second grid code
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Sno" HeaderText="Sno" HtmlEncode="False" />
<asp:BoundField DataField="Amount" HeaderText="Amount" />
<asp:BoundField DataField="DcNo" HeaderText="DcNo" />
</Columns>
</asp:GridView>
code to bind the grid
DataTable dtblGroup = new DataTable();
dtblGroup.Columns.Add("Sno", typeof(string));
dtblGroup.Columns.Add("Amount", typeof(decimal));
dtblGroup.Columns.Add("DcNo", typeof(int));
DataView dv = new DataView(dtblSource);
DataTable dtblDistinct = dv.ToTable(true, "DcNo");
string Sno;
decimal amount;
int dcno;
foreach (DataRow drDist in dtblDistinct.Rows)
{
Sno = string.Empty;
amount = 0;
dcno = (int)drDist["DcNo"];
DataRow[] drws = dtblSource.Select("DcNo=" + dcno.ToString());
foreach (DataRow dr in drws)
{
amount += (decimal)dr["Amount"];
Sno = Sno + (Sno == string.Empty ? "" : "<br>") + dr["Sno"].ToString();
}
dtblGroup.Rows.Add(new object[] { Sno, amount, dcno });
}
GridView1.DataSource = dtblGroup;
GridView1.DataBind();