public class MySqlHelper
{
private YourContext _context; public MySqlHelper(YourContext context)
{
_context = context;
} /// <summary>
/// 查询列表
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <returns></returns>
public List<T> QueryForDatable<T>(string sql)
{
string conn= _context.Database.Connection.ConnectionString;
using(var connection= new MySqlConnection(conn))
{
MySqlCommand cmd = new MySqlCommand(sql, connection);
//需要open才能执行Command
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
List<T> data = DataReaderMapToList<T>(reader);
connection.Close();
return data;
}
}
} /// <summary>
/// 查询数量
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int QueryForCount(string sql)
{
string conn = _context.Database.Connection.ConnectionString;
using (var connection = new MySqlConnection(conn))
{
MySqlCommand cmd = new MySqlCommand(sql, connection);
connection.Open();
//只取第一行第一个结果
Object result = cmd.ExecuteScalar();
if (result != null)
{
int count = int.Parse(result.ToString());
connection.Close();
return count;
}
connection.Close();
return 0;
}
} public static List<T> DataReaderMapToList<T>(IDataReader dr)
{
List<T> list = new List<T>();
T obj = default(T);
List<string> columnNames = new List<string>();
//查询DataReader里面的列名集合
for (var f = 0; f < dr.FieldCount; f++)
{
columnNames.Add(dr.GetName(f));
}
while (dr.Read())
{
obj = Activator.CreateInstance<T>();
foreach (PropertyInfo prop in obj.GetType().GetProperties())
{
//判断列名是否存在
var columnName = columnNames.Find(x => x == prop.Name);
if (!string.IsNullOrEmpty(columnName))
{
prop.SetValue(obj, dr[prop.Name]);
}
}
list.Add(obj);
}
return list;
}
}

MySQL 执行原生sql的更多相关文章

  1. Hibernate执行原生SQL返回List<Map>类型结果集

    我是学java出身的,web是我主要一块: 在做项目的时候最让人别扭的就是hibernate查询大都是查询出List<T>(T指代对应实体类)类型 如果这时候我用的联合查询,那么返回都就是 ...

  2. 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题

    转自博客http://blog.csdn.net/xd195666916/article/details/5419316,同时感谢博主 今天做了个用hibernate直接执行原生sql的查询,报错No ...

  3. sqlalchemy 执行原生sql语句

    from contextlib import contextmanager from sqlalchemy import create_engine, ForeignKey from sqlalche ...

  4. java:Hibernate框架3(使用Myeclipse逆向工程生成实体和配置信息,hql语句各种查询(使用hibernate执行原生SQL语句,占位符和命名参数,封装Vo查询多个属性,聚合函数,链接查询,命名查询),Criteria)

    1.使用Myeclipse逆向工程生成实体和配置信息: 步骤1:配置MyEclipse Database Explorer: 步骤2:为项目添加hibernate的依赖: 此处打开后,点击next进入 ...

  5. Spring的jdbcTemplate查询执行原生sql

    在spring与hibernate整合时进行数据库检索,执行原生sql: public AppointmentEvaluateVo searchMyfeedbackDetail(String acco ...

  6. 监控mysql执行的sql语句

    linux平台 监控mysql执行的sql语句   为了做好配合开发做性能和功能测试,方便监控正在执行的sql语句, 可以在/etc/mysqld中添加如下:  log =/usr/local/mys ...

  7. laravel 跨库执行原生 sql 语句

    执行原生 sql 返回结果集

  8. orm分组,聚合查询,执行原生sql语句

    from django.db.models import Avg from app01 import models annotate:(聚合查询) ret=models.Article.objects ...

  9. Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL

    一    F查询与Q查询: 1 . F查询: 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的 ...

随机推荐

  1. 为什么 qt 成为 c++ 界面编程的第一选择?

    为什么qt成为c++界面编程的第一选择 一.前言 为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右.当时为什么会从M ...

  2. php资源集

    php资源集 一.php资源网站 1.php中文网(js特效,模板,软件工具下载,课程) www.php.cn js特效下载_js特效代码_js特效大全-php中文网免费下载站http://www.p ...

  3. [Angular] Updating and resetting FormGroups and FormControls

    If you want to reset or just update field value, you can do: reset: reset({key: value, k2:v2}); upda ...

  4. git自己操作命令组集合

    git自己操作命令组集合 一.总结 一句话总结: 1.官方有非常详细的中文文档资料,任何组件或者插件记得看有没有文档资料,这个用起来快,配合百度. 2.git clone命令是直接把git仓库上面的代 ...

  5. C#编写TensorFlow人工智能应用

    C#编写TensorFlow人工智能应用 TensorFlowSharp入门使用C#编写TensorFlow人工智能应用学习. TensorFlow简单介绍 TensorFlow 是谷歌的第二代机器学 ...

  6. react中对象扩展运算符使用问题

    看别人代码看到 render() { return <Modal {...this.props}> {this.props.children} </Modal> } 对其中的{ ...

  7. 【record】10.17..10.23

    .

  8. Tomcat 学习总结

    1. 下载地址      Eclipse: http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/photo ...

  9. VC命令行编译中出现Invalid switch错误的解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 使用makefile编译gdal库出现一个错误: cd .. if exist./gdal19_i_D.lib del ...

  10. 他们实际上控制的定义很easy5/12

    尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究! 炮兵镇楼 近期龙体欠安.非常多任务都堆着,虽 ...