📅  最后修改于: 2021-01-06 05:56:17             🧑  作者: Mango
LINQ to SQL是.NET Framework 3.5版的组件。它提供了运行时基础结构来将关系数据作为对象进行管理。
它允许我们使用LINQ查询访问SQL数据库并从中获取数据。它使我们能够使用LINQ查询对SQL之类的表执行选择,插入,更新和删除操作。
在LINQ to SQL中,关系数据库的数据模型被映射到对象模型,并且在执行将LINQ对象模型转换为SQL以从数据库中获取所需数据的同时,从数据库返回数据时,LINQ to SQL将将SQL结果转换为LINQ对象模型。
这是LINQ to SQL架构的图形表示。
通过使用LINQ to SQL,我们可以执行多种操作,例如插入,删除和更新。与ADO.Net进行比较时,我们可以用最少的编码获得数据。
在这里,我们以一个示例为例,说明如何在asp.net Web应用程序中创建和使用LINQ to SQL(dbml文件)。
首先,我们创建一个新的应用程序。为此,打开Visual Studio->转到文件->新建->项目。
现在,我们选择“ Asp.Net Empty Web Application ”,并将项目名称命名为“ LINQTOSQL ”,然后单击“确定”,如下所示。
至此,项目创建完成。在使用LINQ to SQL的应用程序中,我们需要创建一个“ DBML ”文件。 DBML文件将包含源代码,这将使我们能够编写LINQ查询来从SQL数据库获取数据。
要创建DBML文件,请在项目上单击鼠标右键->转到添加->选择新项->选择模板LINQ to SQL ,并将名称命名为“ Student ”,如下所示。
将LINQ添加到SQL dbml文件后,将打开窗口,如下所示:
在这里,我们观察到,左侧部分有两个部分。在这里,我们可以将表添加或创建为对象,并且在右侧,我们可以添加所需的存储过程来获取数据。
现在打开服务器资源管理器,右键单击数据连接,然后选择添加连接,如下所示。
选择添加连接后,将弹出一个新的弹出窗口,我们需要选择数据源。在这里,我们将连接到现有数据库。这就是为什么我们选择“ Microsoft SQL Server ”并单击“ Continue”(继续)的原因,如下所示:
现在输入要连接的数据库服务器详细信息,如下所示:
输入所有详细信息以连接数据库后,单击“确定”按钮。现在添加数据库之后,我们将使用以下脚本创建新表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表后,将显示为:
现在,我们将表格拖放到Student.dbml文件中。
现在,我们将看到如何使用LINQ to SQL在我们的应用程序中获取StudentData。为此,我们将在应用程序上单击鼠标右键->选择添加->新建项目->选择Web表单->将名称命名为Default.aspx ,然后单击确定按钮。
现在,我们将打开Default.aspx页面,并编写如下所示的代码。
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
这是应用程序的设计阶段。
设计
在这里,我们将编写用于从收集的数据库中搜索学生信息的代码。为了实现上述设计的功能,我们将在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示例的结果。
输出值