mysql execute sql,MySql-执行Sql

执行Sql

对于一些极其复杂的 sql 查询,还是得依赖原生 sql,因此,Chloe 提供了原生 sql 查询接口。

获取满足条件的用户信息,将结果映射到 User 类上:

context.SqlQuery("select * from Users where Age>?age", new DbParam("?age", 18)).ToList();

获取满足条件的用户 Id:

context.SqlQuery("select Id from Users where Age>?age", new DbParam("?age", 18)).ToList();

支持存储过程:

context.SqlQuery("Proc_Test", CommandType.StoredProcedure, new DbParam("?age", 18)).ToList();

支持dynamic:

context.SqlQuery("select Id,Name from Users where Age>?age", new DbParam("?age", 18)).ToList();

传参方式2:

context.SqlQuery("select * from Users where Id=?Id", new { Id = 1 }).ToList();

DataTable dt = context.Session.ExecuteDataTable("select * from users where age>=@age", new { age = 18 });

int age = 18;

List users = context.FormatSqlQuery($"select * from Users where age>={age}").ToList();

//或者

FormattableString sql = $"select * from Users where age>={age}"; //此处声明变量不能是 var 或者 string,否则会生成非参数化 sql,有潜在的 sql 注入问题

users = context.FormatSqlQuery(sql).ToList();

/*

* 生成参数化 sql:

* Input Int32 ?P_0 = 18;

select * from Users where age>=?P_0

*/

ado.net:

基本的 ado.net 接口定义在 DbContext.Session 对象中。

int rowsAffected = context.Session.ExecuteNonQuery("update Users set Age=18 where Id=1");

IDataReader dataReader = context.Session.ExecuteReader("select * from Users where Age>18");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值