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

LINQ to SQL(DBML文件)

LINQ to SQL是.NET Framework 3.5版的组件。它提供了运行时基础结构来将关系数据作为对象进行管理。

它允许我们使用LINQ查询访问SQL数据库并从中获取数据。它使我们能够使用LINQ查询对SQL之类的表执行选择, 插入, 更新和删除操作。

在LINQ to SQL中, 关系数据库的数据模型映射到对象模型, 并且在执行转换为SQL的LINQ对象模型以从数据库中获取所需数据的同时, 从数据库返回数据时, LINQ to SQL将将SQL结果转换为LINQ对象模型。

这是LINQ to SQL架构的图形表示。

LINQ转SQL

通过使用LINQ to SQL, 我们可以执行多种操作, 例如插入, 删除和更新。与ADO.Net相比, 我们可以用最少的编码获得数据。

创建LINQ to SQL并在Web应用程序中使用

在这里, 我们以一个示例为例, 说明如何在asp.net Web应用程序中创建和使用LINQ to SQL(dbml文件)。

首先, 我们创建一个新的应用程序。为此, 打开Visual Studio->转到文件->新建->项目。

LINQ转SQL 1

现在, 我们选择” Asp.Net空Web应用程序”, 并将项目名称命名为” LINQTOSQL”, 然后单击”确定”, 如下所示。

LINQ转SQL 2

至此, 项目创建完成。在使用LINQ to SQL的应用程序中, 我们需要创建一个” DBML”文件。 DBML文件将包含源代码, 这将使我们能够编写LINQ查询来从SQL数据库获取数据。

要创建DBML文件, 请右键单击项目->转到添加->选择新项->选择模板LINQ to SQL, 并将名称命名为” Student”, 如下所示。

LINQ转SQL 3

将LINQ添加到SQL dbml文件后, 将打开窗口, 如下所示:

LINQ转SQL 4

在这里, 我们观察到, 左侧部分有两个部分。在这里, 我们可以将表添加或创建为对象, 并且在右侧, 我们可以添加所需的存储过程来获取数据。

现在打开服务器资源管理器, 右键单击数据连接, 然后选择添加连接, 如下所示。

LINQ转SQL 5

选择添加连接后, 将打开一个新的弹出窗口, 我们需要选择数据源。在这里, 我们将连接到现有数据库。这就是为什么我们选择” Microsoft SQL Server”并单击”继续”的原因, 如下所示:

LINQ转SQL 6

现在输入要连接的数据库服务器详细信息, 如下所示:

LINQ转SQL 7

输入所有详细信息以连接数据库后, 单击”确定”按钮。现在添加数据库之后, 我们将使用以下脚本创建新表StudentData。

Create Database College
Use College
Create table StudentData
(
	RollNumber int primary key, StudentName varchar(50), FatherName varchar(50), MotherName varchar(50)

)
Insert into StudentData(RollNumber, StudentName, FatherName, MotherName) values(101, 'Akshay', 'Rakesh Tyagi', 'Samlesh Tyagi')
Insert into StudentData(RollNumber, StudentName, FatherName, MotherName) values(102, 'Vaishali', 'Ashok Tyagi', 'Munesh Tyagi')
Insert into StudentData(RollNumber, StudentName, FatherName, MotherName) values(103, 'Arpita', 'Arvind Rai', 'Anni Rai')
Select *from StudentData

在数据库中创建StudentData表后, 将显示为:

LINQ转SQL 8

现在, 我们将表格拖放到Student.dbml文件中。

LINQ转SQL 9

现在, 我们将看到如何使用LINQ to SQL在我们的应用程序中获取StudentData。为此, 我们将在应用程序上单击鼠标右键->选择添加->新建项目->选择Web表单->将名称命名为Default.aspx, 然后单击确定按钮。

现在, 我们将打开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>
    <style type="text/css">
        .auto-style1 {
            width: 50%;
            background-color: #FF9900;
        }
        .auto-style2 {
            width: 310px;
        }
        .auto-style3 {
            width: 310px;
            height: 26px;
        }
        .auto-style4 {
            height: 26px;
        }
        .auto-style5 {
            width: 310px;
            height: 97px;
        }
        .auto-style6 {
            height: 97px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="Larger" Text="LINQ TO SQL"></asp:Label>
        <div>
            <table border="1" class="auto-style1">
                <tr>
                    <td class="auto-style5">Student Roll No</td>
                    <td class="auto-style6">
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        <asp:Button ID="Button1" runat="server" ForeColor="#0066FF" OnClick="Button1_Click" Text="Search" />
                        <br />
                        <asp:Label ID="Label2" runat="server"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td class="auto-style2">Student Name</td>
                    <td>
                        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="auto-style3">Father's Name</td>
                    <td class="auto-style4">
                        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="auto-style2">Mother's Name</td>
                    <td>
                        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td class="auto-style2"> </td>
                    <td> </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>

这是应用程序的设计阶段。

设计

LINQ转SQL 10

在这里, 我们将编写用于从收集的数据库中搜索学生信息的代码。为了实现上述设计的功能, 我们将在Default.Aspx.cs页面中编写代码。

Default.Aspx.cs

using System;
using System.Collections.Generic;
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 Button1_Click(object sender, EventArgs e)
    {
        StudentDataContext sd = new StudentDataContext();
        StudentData student = (from s in sd.StudentDatas where s.RollNumber.ToString() == TextBox1.Text select s).FirstOrDefault();
        if(student==null)
        {
            Label2.Text = "No Record Found";
        }
        else
        {
            Label2.Text = "Record Found successfully";
            TextBox2.Text = student.StudentName;
            TextBox3.Text = student.FatherName;
            TextBox4.Text = student.MotherName;
        }
    }
}

现在, 我们将运行代码并查看如下所示的输出。

这是LINQ to SQL示例的结果。

输出

LINQ转SQL 11

赞(1)
未经允许不得转载:srcmini » LINQ to SQL(DBML文件)

评论 抢沙发

评论前必须登录!