Entity Framework执行Sql语句返回DataTable

摘要:
EntityFramework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作。特别是对于一些复杂的查询,这时候,一般是想直接执行一个Sql语句,返回一个结果集。下面是一个方法,直接返回DataTable。

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)
{
    SqlConnection conn = new System.Data.SqlClient.SqlConnection();
    //conn.ConnectionString = db.Connection.ConnectionString;
    //if (conn.State != ConnectionState.Open)
    //{
    //    conn.Open();
    //}
    conn = (SqlConnection)db.Connection;
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = sql;
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable table = new DataTable();
    adapter.Fill(table);
    conn.Close();//连接需要关闭
    conn.Dispose();
    return table;
}
然后调用的时候,直接传入Context的Database进去,就可以了。

参考网站:

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

免责声明:文章转载自《Entity Framework执行Sql语句返回DataTable》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇智能手机跑大规模神经网络的主要策略Java Calendar使用总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DataTable添加单个或多个字段组成的主键,实现查找

单列主键 DataTable fdt = CmmDb.GetDataTable(orgsql); fdt.PrimaryKey = new DataColumn[] { fdt.Columns["company_enroute_id"] }; DataRow dr = fdt.Rows.Find(fid); //在总表中找到该航线对应的行,该行与总表是应用...

Oracle11g温习-第七章:redo日志

2013年4月27日 星期六 10:33 1、redo (重做) log 的功能:用于数据恢复 2、redo log 特征: 【特征】: 1) 记录数据块的变化(DML、DDL) 2) 用于数据块的recover 3) 以组的方式管理redo file ,最少两组redo ,循环使用 4) 和数据文件存放到不同的磁盘上,需读写速度快的磁盘(比...

安装Docker版MS SQL Server并远程连接SQL Server

1.从Docker 官方下载MS SQL Serve的docker微软官方镜像,选择你要使用的Tag(即版本). docker pull mcr.microsoft.com/mssql/server 2.启动MS SQL Server docker 容器.注意:使用--name='取个名字' 给docker容器取个名字,这样容易记住 docker run...

在asp.net webform中的 gridview 里面的一些基本操作

<body> <form runat="server"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td> <asp:Panel runat="server" CssClass="buttonContainer" Wr...

shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作

mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。 #!/bin/bash HOSTNAME="192.168.111.84"...

SQL update语句加减乘除运算

在处理提现操作时,遇到这样一个问题:account_money为用户剩余金额,提现之后要减去相应金额,需要用update语句进行运算,记录一下 update之前数据库数据(下边所有的数据演示都是与前一步数据进行对比) 1、减法: update money_user_bank set account_money=account_money-100 wher...