1, describes the table structure:
1) curriculum
2) results table
3) Student table
2, the database connection factory class obtain
We need to add System.Configuration reference and 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, the model class definition
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, the package needs to be introduced
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, an example of the use of correlation
// query a single entity public static Couser Query () { the using (Conn the IDbConnection = db.dbFactory.createConn ()) { Console.WriteLine (conn.State); // native written String SQL = " the SELECT * WHERE the FROM dbo.Course @ ID = ID " ; Couser MODEL1 = conn.QueryFirstOrDefault <Couser> (SQL, new new {= ID . 1 }); Console.WriteLine (conn.State); return MODEL1; } } // filter query like manner. 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(1); idList.Add(2); idList.Add(3); idList.Add(4); 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 void insert() { using (IDbConnection conn = db.dbFactory.createConn()) { db.model.Couser model = new Couser(); model.courseName = "数据库原理"; Console.WriteLine(conn.State); //原生写法 string sql = " INSERT INTO dbo.Course(courseName ) VALUES (@courseName) "; conn.Execute(sql, model); Console.WriteLine(conn.State); } } //批量新增 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 = 5; 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 = 6 }); } } //事务控制 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 = 5 }, ts); string sql2 = " INSERT INTO dbo.Course(id, courseName ) VALUES (N'4', N'sdfsfd') "; conn.Execute(sql2, new { id = 6 }, ts); ts.Commit(); } catch (Exception ex) { ts.Rollback(); } finally { conn.Close(); } } }