asp中插入ext:dataview_在.net中使用Dapper操作数据库(一)

本文介绍了Dapper ORM的特点及其在ASP.NET MVC项目中的应用。包括安装配置、表结构创建、Model定义、基本查询和条件查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是Dapper?

Dapper是一款轻量级的ORM,用于在程序中对数据库进行增删改查操作。

二、Dapper有什么特点?

1、配置简单。Dapper是开源的,可以在项目中添加cs类文件进行引用,也可以直接引用dll。

2、使用方便。增删改查操作非常简单,大大减少代码量。

3、高性能。执行效率接近原生的ADO.NET,更是远远超过EF框架。

86beb839db40691ada91b3aad71e4d61.png

三、在项目中引入Dapper

本例使用NuGet程序包安装。在Visual Studio中新建ASP.NET MVC项目,菜单“工具”-“NuGet包管理器”-“管理解决方案的NuGet程序包”。

9b49697c9bd5dcbcbefa54010f8cef66.png

输入关键字“Dapper”进行搜索,找到后安装 到项目中。

83c7fa78dedcb0d0936723e07c48f59a.png

此时解决方案的”引用”中可以看到Dapper已经引用进来。

6cf39d34a73d40727d1d104394537c5c.png

需要说明的是,网上有很多基于Dapper的扩展类及NuGet包,可根据需要选择使用。

四、创建表结构

本例使用MS SQL Server数据库,Dapper还支持mysql、oracle等。

执行下述脚本生成表[Users]并插入2条记录。

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Users](

[UserID] [int] IDENTITY(1,1) NOT NULL,

[UserName] [varchar](50) NULL,

[Email] [varchar](100) NULL,

[Address] [varchar](100) NULL,

CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED

(

[UserID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

INSERT [dbo].[Users] ([UserName], [Email], [Address]) VALUES (N'张三', N'aaa@aaa.com', N'地址111')

GO

INSERT [dbo].[Users] ([UserName], [Email], [Address]) VALUES (N'李四', N'bbb@bbb.com', N'地址222')

GO

表[Users]共有4个字段,分别是int型的自增字段[UserID],varchar型的[UserName]、[Email]和[Address]。

五、创建Model

namespace DapperTest.Models

{

public class Users

{

public int UserID { get; set; }

public string UserName { get; set; }

public string Email { get; set; }

public string Address { get; set; }

}

}

六、数据查询操作

首先,将数据库连接字符串放在web.config中的配置节中。

控制器中查询数据库所有记录并返回到前台View层:

public ActionResult Index()

{

using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))

{

var list = db.Query("Select * From Users").ToList();

return View(list);

}

}

View层通过循环展示数据:

UserNameEmailAddress

@{ foreach (var item in Model)

{

@item.UserName@item.Email@item.Address

}

}

运行后效果:

c94bca075e41f663ffa4050be6c69a0a.png

看得出,代码非常简洁,核心代码就是“db.Query("Select * From Users").ToList();”这一句。

七、数据查询操作扩展--按条件查询

实际项目中列表总是伴随着查询条件展示的,通过组合where条件实现查询功能。最终运行的效果如下:

966abc9dfc478667ea31f9aa27586c3d.png

首先在view层增加查询输入框和提交按钮,代码如下:

UserName:

UserNameEmailAddress

@{ foreach (var item in Model)

{

@item.UserName@item.Email@item.Address

}

}

控制器代码如下,注意接收Post提交内容:

[HttpPost]

public ActionResult Index(FormCollection collection)

{

using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))

{

var list = db.Query("Select * From Users where UserName like @UserName", new

{

UserName = "%" + collection["userName"] + "%"

}).AsList();

return View(list);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值