C#连接数据库及dapper的简单介绍

一、连接数据库

1.Standard Security:

Server=myServerAddress;DataBase=mDataBase;User Id=myUsername;Password=Password

简写:

Server=myServerAddress;DataBase=mDataBase;uid=myUsername;pwd=Password

2.Trusted Connection:

Server=myServerAddress;DataBase=mDataBase;Trusted_Connection=True

一般是自己电脑上的可以这样用,当然,也可以直接用第一种方式登录。

当要连接本机的时候,Server的名称可以直接写一个点.或者localhost

Server=.;DataBase=mDataBase;Trusted_Connection=True

Server=localhost;DataBase=mDataBase;Trusted_Connection=True

Server=myServerAddress;DataBase=mDataBase;uid=myUsername;pwd=Password

二、Dapper的使用

dapper是一款ORM框架。

 

1.安装Dapper

C#连接数据库及dapper的简单介绍_第1张图片

2.在对应文件中引用命名空间,using Dapper;

3.查询

using (IDbConnection db=new SqlConnection(connString))
            {
                //用@作为参数
                string sql = $"select * from Person where LastName=@LastName";
                persons = db.Query(sql,new { LastName=lastName}).ToList();
                //显然,这里的匿名对象,纯粹就是为了弄一个参数而已,此参数与sql语句中的@参数相对应
            }

用@作为参数,可以防止出现sql注入问题,比如说:

sql语句是这样的:select * from Person where FirstName='Stanley' or '1'='1',

那么我们搜出来的结果应该是所有记录,就是说第一个单引号和最后一个单引号中间的内容会被认为都是lastname参数的值:Stanley' or '1'='1

再来一个例子,根据id来查询记录,同样的,query中的第二个参数是匿名对象,只是用来传递personID这个参数的。

public Person SearchByID(int personID)
        {
            using (IDbConnection db=new SqlConnection(DBHelper.ConnString))
            {
                string searchSql = "select * from Person where ID=@ID";
                return db.Query(searchSql,new { ID=personID}).FirstOrDefault();
            }
        }

4.插入

public bool InsertData(Person person)
        {
            using (IDbConnection db=new SqlConnection(DBHelper.ConnString)) 
            {
                //准备插入的sql语句
                string sql = "insert into Person(FirstName,LastName,EmailAddress,CreatedOn) values" +
                    "(@FirstName,@LastName,@EmailAddress,@CreatedOn)";
                //调用dapper中的IDbConnection的扩展方法excute来执行插入操作
                return db.Execute(sql, person)>0;    //第一个参数是sql语句,第二个参数是person对象
            }
        }

5.更新

public void UpdatePerson(Person person)
        {
            using (IDbConnection db=new SqlConnection(DBHelper.ConnString))
            {
                string sql = "update Person set FirstName=@FirstName,LastName=@LastName,EmailAddress=@EmailAddress where ID=@ID";
                db.Execute(sql, person);            
            }
        }

6.删除

public void DeleteByID(int personId)
        {
            using (IDbConnection db = new SqlConnection(DBHelper.ConnString))
            {
                string sql = "delete from Person where ID=@id";
                db.Execute(sql, new { id=personId});
            }
        }

注意:经测试,若是自定义的类,比如Person,的构造器是带参数的,那么由数据库生成对应的Person的时候是会报错的,

这个时候,需要在构造器中设置一个空的默认构造器,这样就可以成功生成了。。即:

public Person()
{

}

 

你可能感兴趣的:(SQL,Server)