c# - How to select rows from a DataTable

Select rows from a DataTable
The DataTable class represents one table of in-memory data. The DataTable objects are conditionally case-sensitive. To create a DataTable programmatically the asp.net developers must first define its schema by adding DataColumn objects to the DataColumnCollection. To add rows to a DataTable, the developers must use the NewRow() method to return a new DataRow object at first. The DataTable also contains a collection of Constraint objects that can be used to ensure the integrity of the data.

The following asp.net c# tutorial code demonstrates how we can select rows from a DataTable instance. So we will get all the rows from a DataTable.

The DataTable class Select() method gets an array of DataRow objects. The DataTable Select() method returns an array of DataRow objects. The asp.net web developers don’t have to pass any parameter to this Select() method to get all the rows from a DataTable object.
UsingDataTableSelectMethod.aspx

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html>
<script runat="server">
    void Button1_Click(object sender, System.EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.TableName = "Products";

        DataColumn dc1 = new DataColumn();
        dc1.ColumnName = "ProductID";
        dc1.DataType = typeof(int);
        dc1.AllowDBNull = false;
        dc1.Unique = true;

        DataColumn dc2 = new DataColumn();
        dc2.ColumnName = "ProductName";
        dc2.DataType = typeof(string);

        DataColumn dc3 = new DataColumn();
        dc3.ColumnName = "Price";
        dc3.DataType = typeof(decimal);
        
        dt.Columns.AddRange(new DataColumn[] { dc1,dc2,dc3 });

        dt.Rows.Add(new object[] { 1, "NetBook", "500" });
        dt.Rows.Add(new object[] { 2, "Monitor", "100" });
        dt.Rows.Add(new object[] { 3, "Laptop", "700.25" });

        GridView1.DataSource = dt;
        GridView1.DataBind();

        DataRow[] drows = dt.Select();
        for (int i = 0; i < drows.Length;i++ )
        {
            decimal productPrice = Convert.ToDecimal(dt.Rows[i]["Price"].ToString());
            dt.Rows[i]["Price"] = productPrice+(productPrice/100*10);
        }

        Label1.Text = "After updating rows (increasing price 10%)";
            
        GridView2.DataSource = dt;
        GridView2.DataBind();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>How to use DataTable.Select method in ado.net</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:DarkBlue; font-style:italic;">
            How to use DataTable Select() method in ado.net
        </h2>
        <hr width="500" align="left" color="CornFlowerBlue" />
        <asp:GridView 
            ID="GridView1"
            runat="server"
            BorderColor="Snow"
            ForeColor="Snow"
            Width="550"
            >
            <HeaderStyle BackColor="DarkSeaGreen" Height="35" />
            <RowStyle BackColor="OrangeRed" />
            <AlternatingRowStyle BackColor="DeepPink" />
        </asp:GridView>
        <br />
        <asp:Label
             ID="Label1"
             runat="server"
             Font-Size="Large"
             ForeColor="SeaGreen"
             >
        </asp:Label>
        <br /><br />
        <asp:GridView 
            ID="GridView2"
            runat="server"
            BorderColor="Snow"
            ForeColor="Snow"
            Width="550"
            >
            <HeaderStyle BackColor="DarkSeaGreen" Height="35" />
            <RowStyle BackColor="OrangeRed" />
            <AlternatingRowStyle BackColor="DeepPink" />
        </asp:GridView>
        <asp:Button 
            ID="Button1"
            runat="server"
            OnClick="Button1_Click"
            Text="Populate GridView"
            Height="45"
            Font-Bold="true"
            ForeColor="DarkBlue"
            />
    </div>
    </form>
</body>
</html>
More c# examples