Minifycode 2022-04-29 Viewed 1.1K times ASP.NET

In this article, you will learn Convert dataset to arraylist and object in asp.net using c#. DataSet is a disconnected records that are retrieved from the database. When a connection is established with the database, the DataAdapter creates a DataSet and stores data in it. After the data is retrieved and stored in a DataSet, the connection with the database is closed. Such a working architecture is called disconnected architecture. The DataSet acts like a virtual database containing tables, rows and columns. An application works with the database records stored in the DataSet.

Dataset stores datatables in the Tables collection and we can retrieve a datatable by passing the index of table. So, to convert DataSet to ArrayList, first we need to get the correct datatable in the DataTable collection and take each row and add to the arrayList. The below code demonstrates how to convert data from dataset to an arraylist.

Convert dataset to arraylist in asp.net using c#

 

public partial class _Default : System.Web.UI.Page
{
    string connectionString = "Data Source=Localhost;Initial CataLog=myDb;User ID=sa; Password=12345Minifycode";
     
     protected void Page_Load(object sender, EventArgs e)
     {
        ArrayList myArrayList = ConvertDataSetToArrayList();
        foreach (Object row in myArrayList)
        {
          Response.Write(((DataRow)row)["Id"].ToString() + " " + ((DataRow)row)["Name"].ToString() + "<br/>");
        }
     }
}

 

public ArrayList ConvertDataSetToArrayList()
{
 SqlConnection conn = new SqlConnection(connectionString);
    SqlCommand cmd = new SqlCommand("Select * from EmpTable",conn);
    cmd.CommandType = CommandType.Text;
    conn.Open();
    SqlDataAdapter myAdapter = new SqlDataAdapter();
    myAdapter.SelectCommand = cmd;
    DataSet myDataSet = new DataSet();
    myAdapter.Fill(myDataSet);
    ArrayList myArrayList = new ArrayList();
    foreach (DataRow dtRow in myDataSet.Tables[0].Rows)
     {
           myArrayList.Add(dtRow);
     }
     conn.Close();
     return myArrayList;
}

Convert dataset to object in c#

Sealed class Tuple<T1, T2>
{
public Tuple() { }
public Tuple(T1 value1, T2 value2) { Value1 = value1; Value2 = value2; }
public T1 Value1 { get; set; }
public T2 Value2 { get; set; }
}
public static List<T> Convert<T>(DataTable table)
where T : class, new()
{
List<Tuple<DataColumn, PropertyInfo>> map =
new List<Tuple<DataColumn, PropertyInfo>>();

foreach (PropertyInfo pi in typeof(T).GetProperties())
{
if (table.Columns.Contains(pi.Name))
{
map.Add(new Tuple<DataColumn, PropertyInfo>(
table.Columns[pi.Name], pi));
}
}

List<T> list = new List<T>(table.Rows.Count);
foreach (DataRow row in table.Rows)
{
if (row == null)
{
list.Add(null);
continue;
}
T item = new T();
foreach (Tuple<DataColumn, PropertyInfo> minifycode)
{
object value = row[pair.Value1];
if (value is DBNull) value = null;
pair.Value2.SetValue(item, value, null);
}
list.Add(item);
}
return list;
}

 

Sealed class Tuple<T1, T2>
{
public Tuple() { }
public Tuple(T1 value1, T2 value2) { Value1 = value1; Value2 = value2; }
public T1 Value1 { get; set; }
public T2 Value2 { get; set; }
}
public static List<T> Convert<T>(DataTable table)
where T : class, new()
{
List<Tuple<DataColumn, PropertyInfo>> map =
new List<Tuple<DataColumn, PropertyInfo>>();

foreach (PropertyInfo pi in typeof(T).GetProperties())
{
if (table.Columns.Contains(pi.Name))
{
map.Add(new Tuple<DataColumn, PropertyInfo>(
table.Columns[pi.Name], pi));
}
}

List<T> list = new List<T>(table.Rows.Count);
foreach (DataRow row in table.Rows)
{
if (row == null)
{
list.Add(null);
continue;
}
T item = new T();
foreach (Tuple<DataColumn, PropertyInfo> mini)
{
object value = row[pair.Value1];
if (value is DBNull) value = null;
pair.Value2.SetValue(item, value, null);
}
list.Add(item);
}
return list;
}

Convert dataset to arraylist and object in asp.net using c#
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html> <head> <title>Asp.Net Repeater Control</title> </head> <body> <form id="form1" runat="server"> <div style="font:13px Verdana;width:310px;"> <asp:ScriptManager ID="scriptManager" runat="server" EnablePageMethods="true" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <h3>Asp.Net Repeater Control</h3> <%--THE REPEATER CONTROL.--%> <asp:Repeater id="rp" runat="server"> <%--HEADER OF THE REPEATER--%> <HeaderTemplate> <table border="0" width="200px"> </HeaderTemplate> <%--SHOWING ITEMS--%> <ItemTemplate> <tr> <td style="padding:2px; border:solid 1px #CCC;"> <asp:Label Text='<%# Container.DataItem.ToString() %>' runat="server"></asp:Label> </td> </tr> </ItemTemplate> <%--ALTERNATE TEMPLATE (SHOWING ITEMS IN DIFFERENT COLOR--%> <AlternatingItemTemplate> <tr> <td style="padding:2px; border:solid 1px #CCC; background:#EAF7FB; width:200px;"> <asp:Label Text='<%# Container.DataItem.ToString() %>' runat="server"></asp:Label> </td> </tr> </AlternatingItemTemplate> <%--REPEATER FOOTER--%> <FooterTemplate> </table> <div style="padding:20px 0;"> <asp:Label ID="lblFoot" runat="server"></asp:Label> </div> </FooterTemplate> </asp:Repeater> <%--BUTTON CONTROL--%> <asp:Button ID="btVF" Text="View Files" AutoPostBack="true" OnClick="Show" Font-Names="sanserif" Font-Italic="true" Font-Size="155%" runat="server" /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="PostBackTrigger" /> </Triggers> </asp:UpdatePanel> </div> </form> </body> </html> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {} protected void Show(object sender, EventArgs e) { DirectoryInfo Folder = new DirectoryInfo(Server.MapPath("Files\\")); FileInfo[] fileList = Folder.GetFiles("*.*"); //BIND THE FILE LIST WITH THE REPEATER CONTROL. rp.DataSource = fileList; rp.DataBind(); } } Adding the <AlternatingTemplate> below the <ItemTemplate> will show files with a different background color for every alternate row. <AlternatingItemTemplate> <div style="padding:3px; border:solid 1px #FFF; background:#black"> <asp:Label Text='<%# Container.DataItem.ToString() %>' runat="server"></asp:Label> </div> </AlternatingItemTemplate> </AlternatingItemTemplate> <SeparatorTemplate><hr /> </SeparatorTemplate> Add the <HeaderTemplate> element just above the <ItemTemplate> <HeaderTemplate> <div style="padding-bottom:20px"><strong>Files</strong> (Header)</div> </HeaderTemplate> Repeater with <FooterTemplate> element <FooterTemplate> <div style="padding-top:20px"><asp:Label ID="lblFooter" runat="server"></asp:Label></div> </FooterTemplate> Code Behind In C# Control ft = rp.Controls[rep.Controls.Count - 1].Controls[0]; Label lbl_Footer = ft.FindControl("lblFooter") as Label; lbl_Footer.Text = "Showing total <b>" + fileList.Length + "</b> files in the Footer.";