个性化阅读
专注于IT技术分析

LINQ转ADO.Net

LINQ to ADO.Net意味着对ADO.Net中的对象使用LINQ查询。 LINQ to ADO.Net使我们有机会在ADO.Net中的Enumerable对象上编写LINQ查询, 而LINQ to ADO.Net具有三种可用的LINQ技术。这些是LINQ到数据集, LINQ到SQL和LINQ到实体。

LINQ到ADO.Net的语法

这是LINQ to ADO.Net对象的语法。

var result = from dt in ds.Tables[0].AsEnumerable()
where (dt.Field<string>("Gender") == "Male")
select new
{
Name = dt.Field<string>("empname"), Location = dt.Field<string>("location"), Gender = dt.Field<string>("gender"), };

在以上语法中, 我们在ADO.NET数据集对象” ds”上编写了LINQ查询, 以获取所需的数据。

LINQ to ADO.NET示例

在这里, 我们将以示例为例, 说明如何使用LINQ to ADO.NET, 我们将创建一个新的Web应用程序并与SQL SERVER建立连接, 并使用LINQ在ADO.NET对象(数据集)上写查询以显示数据在网格视图中。

在这里, 首先, 我们将在数据库中创建一个新表” EmployeeDetails”, 以便在数据库中执行以下查询, 并插入一些虚拟数据以在应用程序中显示它。

现在, 我们将为该文件创建一个新的Web应用程序, 方法如下:转到”文件”->”选择新建”->”选择项目”。

LINQ crud

选择新项目后, 将打开一个弹出窗口, 我们必须选择asp.net空的Web应用程序, 并将名称命名为LINQ至ADO.NET, 然后单击”确定”以创建一个新的Web应用程序。

现在, 我们将网页添加到该应用程序中, 我们需要在该应用程序上单击鼠标右键->选择添加->选择Web表单->将名称命名为” Default.aspx”, 然后单击确定按钮, 它将创建一个应用程序中的新页面。

现在打开” Default.aspx”页面, 并编写如下所示的代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:GridView ID="gvDetails" CssClass="Gridview" runat="server" AutoGenerateColumns="False">

<HeaderStyle CssClass="headerstyle" />

<Columns>

<asp:BoundField HeaderText="Name" DataField="Name" />

<asp:BoundField HeaderText="Location" DataField="Location" />

<asp:BoundField HeaderText="Gender" DataField="Gender" />

</Columns>

</asp:GridView>
        </div>
    </form>
</body>
</html>

现在打开文件后面的代码并编写代码, 如下所示:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)

        {

            BindGridview();

        }


    }
    protected void BindGridview()

    {

        DataSet ds = new DataSet();

        using (SqlConnection con = new SqlConnection("Data Source=srcmini\\SQLEXPRESS;Integrated Security=true;Initial Catalog=ADONET"))

        {

            con.Open();

            SqlCommand cmd = new SqlCommand("select * from employeedetails", con);

            cmd.CommandType = CommandType.Text;

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            da.Fill(ds);

            con.Close();

            if (ds.Tables[0].Rows.Count > 0)

            {

                var result = from dt in ds.Tables[0].AsEnumerable()

                             where (dt.Field<string>("Gender") == "Male")

                             select new

                             {

                                 Name = dt.Field<string>("EmpName"), Location = dt.Field<string>("Location"), Gender = dt.Field<string>("Gender"), };

                gvDetails.DataSource = result;

                gvDetails.DataBind();

            }
        }
    }
}

在上面的示例中, 我们使用ADO.NET数据集对象, 并在数据集对象上编写LINQ查询, 以从Gender等于” Female”的数据集中获取详细信息。现在, 我们将运行该应用程序并查看输出。

输出

LINQ crud

赞(0)
未经允许不得转载:srcmini » LINQ转ADO.Net

评论 抢沙发

评论前必须登录!