EF 返回DataTable 扩展方法

    public static class EFExtendMethod
    {
        public static DataTable SqlQueryToDataTable(this Database db, string sql, CommandType type = CommandType.Text, params SqlParameter[] param)
        {
            DataTable ret_dt = new DataTable();
            SqlConnection conn = db.Connection as SqlConnection;
            if (conn == null)
            {
                conn = new SqlConnection(db.Connection.ConnectionString);
            }

            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }

            try
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.CommandType = type;

                if (param != null && param.Length > 0)
                {
                    foreach (SqlParameter p in param)
                    {
                        cmd.Parameters.Add(p);
                    }
                }

                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(ret_dt);

                conn.Close();
                return ret_dt;
            }
            catch (Exception ex)
            {
                conn.Close();
                return ret_dt;
            }
        }

        public static DataTable SqlQueryToDataTable(this Database db, string sql, params SqlParameter[] param)
        {
            return SqlQueryToDataTable(db,sql,CommandType.Text,param);
        }
    }

  

时间: 2024-10-07 00:56:27

EF 返回DataTable 扩展方法的相关文章

DataTable扩展方法ToList<T>()、ToJSON()、ToArrayList()

/// <summary> /// 扩展方法类 /// </summary> public static class CommonExtension { /// <summary> /// 数据类型对应转换方法字典 /// </summary> static Dictionary<Type, Func<object, object>> dic_convert = new Dictionary<Type, Func<obje

PetaPoco ORM 增加返回DataTable的方法

1 public DataTable ExecuteDataTable(Sql sql) 2 { 3 return ExecuteDataTable(sql.SQL, sql.Arguments); 4 } 5 public DataTable ExecuteDataTable(string sql, params object[] args) 6 { 7 try 8 { 9 OpenSharedConnection(); 10 try 11 { 12 using (var cmd = Crea

EF返回DataTable并且返回Json数据

public ActionResult GetData() { string data = Request.Form["Data"] ?? ""; using (var db = new BaseContext()) { SqlConnection conn = new System.Data.SqlClient.SqlConnection(); //conn.ConnectionString = db.Database.Connection.ConnectionS

c# ef 排序字段动态,构建动态Lambda和扩展方法OrderBy

1.动态构建排序 Lambda /// <summary> /// 获取排序Lambda(如果动态排序,类型不同会导致转换失败) /// </summary> /// <typeparam name="T">数据字段类型</typeparam> /// <typeparam name="Tkey">排序字段类型</typeparam> /// <param name="defau

c# 之DataTable的扩展方法

由于太懒了,很久没更新了.毕业了,得好好装逼学习了,不能一心想着完了. 由于公司中的项目大量的使用DataTable,而每次对datatable进行操作的时候需要写很多相同的代码,所以秉着 装逼而学习 的态度,于是撸了几个扩展方法,记录下来,学习下.     class Program     {         public DataTable LinqTable = new DataTable();         void AddNewRow(int id, string name)   

扩展方法 DataTable To List&lt;T&gt;

生活很精彩,所以我自己创造自己的喜欢的东西,或取之有方.有时code累,重复的东西也多...也不是很美观,怎么样让自己更爽赶快顺手的编码呢....所以扩展方法也来了.. 一.扩展方法描述一方: 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异.扩展方法被

EF中的MySql返回 DataTable公共类库

public static class SqlHelper { /// <summary> /// EF SQL 语句返回 dataTable /// </summary> /// <param name="db">ef数据上下文</param> /// <param name="sql">语句</param> /// <param name="parameters"&

LinQ 定义带有返回类型的扩展方法3.2

using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.Diagnostics; namespace ExtensionWithReturn { class Program { static void Main(string[] args) { var s

扩展方法where方法查询不到数据,不会抛异常,也不是返回的null

如题,“扩展方法where方法查询不到数据,不会抛异常,也不是返回的null”,示例代码如下: Product类: public class Product { private string name; public string Name { get { return name; } set { name = value; } } private double price; public double Price { get { return price; } set { price = va