.net post提交后接收返回数据_在.net中使用Dapper操作数据库(一)
一、什么是Dapper?Dapper是一款轻量级的ORM,用于在程序中对数据库进行增删改查操作。二、Dapper有什么特点?1、配置简单。Dapper是开源的,可以在项目中添加cs类文件进行引用,也可以直接引用dll。2、使用方便。增删改查操作非常简单,大大减少代码量。3、高性能。执行效率接近原生的ADO.NET,更是远远超过EF框架。三、在项目中引入Dapper本例使用NuGet程序包安装。在V
一、什么是Dapper?
Dapper是一款轻量级的ORM,用于在程序中对数据库进行增删改查操作。
二、Dapper有什么特点?
1、配置简单。Dapper是开源的,可以在项目中添加cs类文件进行引用,也可以直接引用dll。
2、使用方便。增删改查操作非常简单,大大减少代码量。
3、高性能。执行效率接近原生的ADO.NET,更是远远超过EF框架。
三、在项目中引入Dapper
本例使用NuGet程序包安装。在Visual Studio中新建ASP.NET MVC项目,菜单“工具”-“NuGet包管理器”-“管理解决方案的NuGet程序包”。
输入关键字“Dapper”进行搜索,找到后安装 到项目中。
此时解决方案的”引用”中可以看到Dapper已经引用进来。
需要说明的是,网上有很多基于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层通过循环展示数据:
UserName | Address |
@{ foreach (var item in Model)
{
@item.UserName@item.Email@item.Address}
}
运行后效果:
看得出,代码非常简洁,核心代码就是“db.Query("Select * From Users").ToList();”这一句。
七、数据查询操作扩展--按条件查询
实际项目中列表总是伴随着查询条件展示的,通过组合where条件实现查询功能。最终运行的效果如下:
首先在view层增加查询输入框和提交按钮,代码如下:
UserName:
UserName | Address |
@{ 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);
}
}
更多推荐
所有评论(0)