首页 > 数据库技术 > 详细

Entity Framework执行Sql语句返回DataTable

时间:2014-02-09 16:41:51      阅读:693      评论:0      收藏:0      [点我收藏+]

         Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作。如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的话,那么就可以用这个连接字符串,自己写ADO的代码,去数据库进行相关的操作。特别是对于一些复杂的查询,这时候,一般是想直接执行一个Sql语句,返回一个结果集。下面是一个方法,直接返回DataTable。

/// <summary>
/// EF SQL 语句返回 dataTable
/// </summary>
/// <param name="db"></param>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static DataTable SqlQueryForDataTatable(this Database db,
         string sql,
         SqlParameter[] parameters)
{
 
    SqlConnection conn = new System.Data.SqlClient.SqlConnection();
    conn.ConnectionString = db.Connection.ConnectionString;
    if (conn.State != ConnectionState.Open)
    {
        conn.Open();
    }
 
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = sql;
 
    if (parameters.Length > 0)
    {
        foreach (var item in parameters)
        {
            cmd.Parameters.Add(item);
        }
    }
 
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable table = new DataTable();
    adapter.Fill(table);
 
    return table;
}

      然后调用的时候,直接传入Context的Database进去,就可以了。

       参考网站:

       http://www.cnblogs.com/wlflovenet/archive/2011/12/30/EF11.html

Entity Framework执行Sql语句返回DataTable

原文:http://www.cnblogs.com/xiaoxiangfeizi/p/3541446.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!