Dapper操作Sql Server和MySql数据库
1. 在配置文件web.config中添加连接字符串
<connectionStrings>
<add name="sqlconnectionString" connectionString="server=127.0.0.1;database=MyDataBase;User=sa;password=123456;Connect Timeout=1000000"/>
<add name="mysqlconnectionString" connectionString="Data Source=127.0.0.1;Database=hyd;User Id=root;Password=root;CharSet=utf8;port=3306"/>
</connectionStrings>
2. 获取连接数据库对象
获取Sql Server的连接数据库对象SqlConnection
public static SqlConnection SqlConnection()
{
string sqlconnectionString = ConfigurationManager.ConnectionStrings["sqlconnectionString"].ToString();
var connection = new SqlConnection(sqlconnectionString);
connection.Open();
return connection;
}
获取MySql的连接数据库对象 MySqlConnection
public static MySqlConnection MySqlConnection()
{
string mysqlconnectionString = ConfigurationManager.ConnectionStrings["mysqlconnectionString"].ToString();
var connection = new MySqlConnection(mysqlconnectionString);
connection.Open();
return connection;
}
3. 实体类
public class Users
{
public int ID { get; set; }//自增主键
public string Name { get; set; }
public int Age { get; set; }
}
4. 增删改查
//增
using (IDbConnection conn = DapperService.MySqlConnection())
{
Users user = new Users();
user.Name = "CNKI";
user.Age = ;
string sqlCommandText = @"INSERT INTO USERS(Name,Age)VALUES(@Name,@Age)";
int result = conn.Execute(sqlCommandText, user);
}
//批量增
using (IDbConnection conn = DapperService.MySqlConnection())
{
List<Users> list = new List<Users>();
for (int i = ; i < ; i++)
{
Users user = new Users();
user.Name = "CNKI";
user.Age = ;
list.Add(user);
}
string sqlCommandText = @"INSERT INTO USERS(Name,Age)VALUES(@Name,@Age)";
int result = conn.Execute(sqlCommandText, list);
}
//删
using (IDbConnection conn = DapperService.MySqlConnection())
{
Users user = new Users();
user.ID = ;
string sqlCommandText = @"DELETE FROM USERS WHERE ID=@ID";
int result = conn.Execute(sqlCommandText, user);
}
//改
using (IDbConnection conn = DapperService.MySqlConnection())
{
Users user = new Users();
user.ID = ;
user.Name = "CNKI";
user.Age = ;
string sqlCommandText = @"UPDATE USERS SET Age=@Age WHERE ID=@ID";
int result = conn.Execute(sqlCommandText, user);
}
//查
using (IDbConnection conn = DapperService.MySqlConnection())
{
string sqlCommandText = @"SELECT * FROM USERS WHERE ID=@ID";
Users user = conn.Query<Users>(sqlCommandText, new { ID= }).FirstOrDefault();
}
//分页
using (IDbConnection conn = DapperService.MySqlConnection())
{
int pageIndex = ;
int pageSize = ;
string sqlCommandText = string.Format(@"SELECT * FROM USERS LIMIT {0},{1} ", pageIndex * pageSize, pageSize);
List<Users> user = conn.Query<Users>(sqlCommandText).ToList();
}
5. 防止Sql注入
using (IDbConnection conn = DapperService.MySqlConnection())
{
string sqlCommandText = @"SELECT * FROM USER WHERE ID=@ID";
var p = new DynamicParameters();
p.Add("@ID", );
User user = conn.Query<User>(sqlCommandText,p).FirstOrDefault();
}
这里用到了Dapper的DynamicParameters动态参数集合类,从上面可以看到可以能过Add方法加入参数。最后通过conn.Query<MSys_Admin>(sqlText, p)执行sql,,返回结果。因为用的是命令参数的形式,让sql注入无机可乘,所以这种方案是安全的。
6. 操作事物
public void TestDapperTransaction()
{
using (var conn = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;Database=test;User Id=root;password=root"))
{
conn.Open();
//开户事务
IDbTransaction trans = conn.BeginTransaction();
try
{
int row = conn.Execute(@"update t set name='www.lanhusoft.com' where id=@id", new { id = }, trans);
row += conn.Execute("delete from t where id=@id", new { id = }, trans);
for (int i = ; i < ; i++)
{
conn.Execute(@"insert t(id, name) values (@id, @name)", new { id = i, name = "www.lanhusoft.com/" + i });
}
trans.Commit(); //提交事务
conn.Close();
}
catch (Exception)
{
trans.Rollback(); //回滚事务
conn.Close();
}
}
}
Dapper操作Sql Server和MySql数据库的更多相关文章
- ORM之Dapper操作Sql Server和MySql数据库
1.为什么选择Dapper 1)轻量. 2)速度快.Dapper的速度接近与IDataReader,取列表的数据超过了DataTable. 3)支持多种数据库.Dapper可以在所有Ado.net P ...
- SQL Server和MySQL数据库
导读:接下来的网上商城的项目,需要用到MySQL数据库了.这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它.本篇博客,先介绍SQL Server的基本内容, ...
- SQL Server 对接MySQL 数据库
1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql.com/downloads/connector/odbc/ 2.安装好后,在管理工具- ...
- 使用records库操作SQL并且查询MySQL数据库
获取数据库 db = records.Database('mysql://root:xxxx@47.106.151.165/web_table?charset=utf8')注释:xxxx为数据密码 执 ...
- 代码生成器Sql Server 和 Mysql 数据库脚本
经常用到代码生成器,对于取数据脚本做个记录: #region SQL-SqlServer private string SqlTableList = @"SELECT so.name, Co ...
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
- Python 学习笔记:Python 操作 SQL Server 数据库
最近要将数据写到数据库里,学习了一下如何用 Python 来操作 SQL Server 数据库. 一.连接数据库: 首先,我们要连接 SQL Server 数据库,需要安装 pymssql 这个第三方 ...
- 数据库 SQL Server 到 MySQL 迁移方法总结
最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 ...
- SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法
SQL2005 还原数据库失败,提示如下: SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法 出现错误时操作步骤为:右击数据库--->任务- ...
随机推荐
- 009——Matlab调用cftool工具的函数方法
(一)参考文献:http://blog.sina.com.cn/s/blog_4a0a8b5d0100uare.html (二)视频教程:https://v.qq.com/x/page/x30392r ...
- learning scala pattern matching 02
code package com.aura.scala.day01 object patternMatching02 { def main(args: Array[String]): Unit = { ...
- [TJOI2013]松鼠聚会 曼哈顿距离
[TJOI2013]松鼠聚会 luogu P3964 首先容易得到两点间距离是\(max(|x_1-x_2|, |y_1-y_2|)\)(即切比雪夫距离) 然后有个套路:原\((x,y)\)求曼哈顿距 ...
- NetworkX系列教程(4)-设置graph的信息
小书匠Graph图论 要画出美观的graph,需要对graph里面的节点,边,节点的布局都要进行设置,具体可以看官方文档:Adding attributes to graphs, nodes, and ...
- Mysql数据库简单使用(二)
Mysql导入.sql文件 进入数据库(要导入的数据库) 数据库中有要导入.sql文件名的数据库,没有则新建. source 路径+文件名 souce /home/robot/csql.sql 数据库 ...
- CodeForces 750A New Year and Hurry
#include<bits/stdc++.h> using namespace std; int main() { int n, k, i, sum; while(~scanf(" ...
- http状态码-备查
http状态码分类 分类 分类描述 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误,请求包含语 ...
- C++ 获取二维数组的一维长度
行长度: ]); 列长度: ][]); ]); int column = lines / row;
- kde的配置文件
主要是home目录下:/.kde4/share/config/ 如果实在是搞不定,还可以直接将.kde4目录全部删除或者替换即可.
- ICEM-三棱锥的一种画法(2D转3D)
原视频下载地址:https://yunpan.cn/cqwC3eZHn5AvJ 访问密码 9456