1、表结构介绍:

1)课程表

2)成绩表

3)学生表

2、获取数据库连接的工厂类

需要添加System.Configuration和MySql.Data.MySqlClient引用

namespace db
{
/// <summary>
/// 数据库连接工厂
/// </summary>
public class dbFactory
{
public static string connStr = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
private static string prividerName = ConfigurationManager.ConnectionStrings["dbConn"].ProviderName; public static IDbConnection createConn()
{
IDbConnection conn = null;
switch (prividerName)
{
case "System.Data.SqlClient":
conn = new SqlConnection(connStr);
break;
case "MySql.Data.MySqlClient":
conn = new MySqlConnection(connStr);
break;
}
return conn;
}
}
}

3、模型类定义

namespace db.model
{
public class Couser
{
public int id { get; set; }
public string courseName { get; set; }
}
public partial class Score
{
public int id { get; set; }
public int score { get; set; }
public int courseId { get; set; }
public int studentId { get; set; }
}
public partial class Student
{
public int id { get; set; }
public string name { get; set; }
public int sex { get; set; }
public string tel { get; set; }
public string other { get; set; }
}
}

4、需要引入的包

using Dapper;
using DapperExtensions;
using db.model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Text;

5、相关使用例子

 //查询单个实体
public static Couser query()
{
using (IDbConnection conn = db.dbFactory.createConn())
{
Console.WriteLine(conn.State);
//原生写法
string sql = " SELECT * FROM dbo.Course where id=@id ";
Couser model1 = conn.QueryFirstOrDefault<Couser>(sql, new { id = });
Console.WriteLine(conn.State);
return model1;
}
} //过滤查询like方式1
public static List<Couser> queryWhere1(string courseName)
{
using (IDbConnection conn = db.dbFactory.createConn())
{
//原生写法 模糊查询1
string sql = " SELECT * FROM dbo.Course where charindex(@courseName,courseName)>0 ";
List<Couser> list = conn.Query<Couser>(sql, new { courseName = courseName }).ToList();
return list;
}
} //过滤查询like方式2
public static List<Couser> queryWhere2(string courseName)
{
using (IDbConnection conn = db.dbFactory.createConn())
{
//原生写法 模糊查询2
string sql = " SELECT * FROM dbo.Course where courseName like @courseName ";
List<int> idList = new List<int>();
List<Couser> list = conn.Query<Couser>(sql, new { courseName = $"%{courseName}%" }).ToList();
return list;
}
} //in 查询
public static List<Couser> queryWhere3()
{
List<int> idList = new List<int>();
idList.Add();
idList.Add();
idList.Add();
idList.Add(); using (IDbConnection conn = db.dbFactory.createConn())
{
//原生写法 模糊查询2
string sql = " SELECT * FROM dbo.Course where id in @id ";
List<Couser> list = conn.Query<Couser>(sql, new { id = idList }).ToList();
return list;
}
} //查询所有
public static List<Couser> queryAll()
{
using (IDbConnection conn = db.dbFactory.createConn())
{
//原生写法
string sql = " SELECT * FROM dbo.Course ";
List<Couser> list = conn.Query<Couser>(sql).ToList();
return list;
}
} //返回动态类型
public static List<dynamic> getStudentScore()
{
using (IDbConnection conn = db.dbFactory.createConn())
{
//原生写法
string sql = @" SELECT dbo.Student.name,courseName,score FROM dbo.Course
LEFT JOIN dbo.Score ON dbo.Course.id = coursedId
LEFT JOIN dbo.Student ON studentId = dbo.Student.id; ";
List<dynamic> list = conn.Query<dynamic>(sql).ToList();
return list;
}
} //新增
public static int insert()
{
using (IDbConnection conn = db.dbFactory.createConn())
{
db.model.Couser model = new Couser();
model.courseName = "数据库原理";
//原生写法
string sql = " INSERT INTO dbo.Course(courseName ) VALUES (@courseName) ";
return conn.Execute(sql, model);
}
} //批量新增
public static void insertBatch()
{
using (IDbConnection conn = db.dbFactory.createConn())
{
List<Couser> list = new List<Couser>();
list.Add(new Couser { courseName = "Batch1" });
list.Add(new Couser { courseName = "Batch2" }); Console.WriteLine(conn.State);
//原生写法
string sql = " INSERT INTO dbo.Course(courseName ) VALUES (@courseName) ";
conn.Execute(sql, list);
Console.WriteLine(conn.State); }
} //修改
public static void update()
{
using (IDbConnection conn = dbFactory.createConn())
{
db.model.Couser model = new Couser();
model.id = ;
model.courseName = "数据库原理1";
//原生写法
string sql = " UPDATE dbo.Course SET courseName=@courseName WHERE id=@id ";
conn.Execute(sql, model);
}
} //删除
public static void delete()
{
using (IDbConnection conn = dbFactory.createConn())
{
string sql = " DELETE FROM dbo.Course WHERE id=@id ";
conn.Execute(sql, new { id = });
}
} //事务控制
public static void testTran()
{
using (IDbConnection conn = dbFactory.createConn())
{
conn.Open();
IDbTransaction ts = conn.BeginTransaction();
try
{
string sql1 = " DELETE FROM dbo.Course WHERE id=@id ";
conn.Execute(sql1, new { id = }, ts); string sql2 = " INSERT INTO dbo.Course(id, courseName ) VALUES (N'4', N'sdfsfd') ";
conn.Execute(sql2, new { id = }, ts); ts.Commit();
}
catch (Exception ex)
{
ts.Rollback();
}
finally
{
conn.Close();
}
}
}

最新文章

  1. Python之路,day11-Python基础
  2. SpringMVC常用注解實例詳解2:@ModelAttribute
  3. java.util.NoSuchElementException解决办法
  4. MVC 读书笔记
  5. Javascript 类与静态类的实现-js面向对象
  6. Android调用远程Service的参数和返回值都需要实现Parcelable接口
  7. linux的SVN搭建与同步
  8. forward:hello 与 redirect:hello的区别
  9. javascript之DOM操作
  10. XAF-列表视图编辑模式
  11. python列表三
  12. poj 3664
  13. 什么是web service ?
  14. 微信小程序实现图片是上传、预览功能
  15. Python常用字符编码(转)
  16. Kafka Offset相关命令总结
  17. 【转】vuex2.0 之 modules
  18. JAVA中将byte[]数组转成16进制字符串
  19. stopPropagation()阻止事件的冒泡传递
  20. 贪吃蛇Ground Java实现(二)

热门文章

  1. Codeforces 608E. Marbles
  2. PHPStorm 批量选择,多光标同时编辑相同的内容
  3. python的工具pip进行安装时出现 No module named &#39;pip&#39;
  4. python之特点
  5. Django 用 userena 做用户注册验证登陆
  6. 微信小程序制作选项卡
  7. IO流1 --- File类的实例化 --- 技术搬运工(尚硅谷)
  8. JDBC的事务处理 JDBC事务处理 JDBC教程
  9. 剑指offer 1-6
  10. R语言实现分层抽样(Stratified Sampling)以iris数据集为例