entity framework(EF) 直接执行数据库命令并返回DataTable

  1. //调用方法  
  2.         private void button1_Click(object sender, EventArgs e)  
  3.         {  
  4.             string id = "1";  
  5.             string sql = "select * from table1 where id = @id";  
  6.  
  7.             #region mysql数据库参数类型  
  8.             var args = new DbParameter[] {  
  9.                                       new SqlParameter { ParameterName = "id", Value = id},  
  10.                                   };  
  11.             #endregion  
  12.  
  13.             #region mysql数据库参数类型  
  14.             //var args = new DbParameter[] {  
  15.             //                          new OdbcParameter { ParameterName = "id", Value = id},  
  16.             //                      };  
  17.             #endregion  
  18.  
  19.             #region access数据库参数类型  
  20.             //var args = new DbParameter[] {  
  21.             //                          new OleDbParameter { ParameterName = "id", Value = id},  
  22.             //                      };  
  23.             #endregion  
  24.             MessageBox.Show(SqlQuery(sql, args).Count().ToString());  
  25.         }  
  26.         ///   
  27.         /// 执行带参数sql语句返回数据列表  
  28.         ///   
  29.         /// 泛型  
  30.         /// sql语句  
  31.         /// 参数  
  32.         /// 数据列表  
  33.         public List SqlQuery(string sql, DbParameter[] args)  
  34.         {  
  35.             if (string.IsNullOrEmpty(sql))  
  36.                 return new List();  
  37.             try  
  38.             {  
  39.                 using (itlogo_integralEntities db = new itlogo_integralEntities())  
  40.                 {  
  41.                     return db.Database.SqlQuery(sql, args).ToList();  
  42.                 }  
  43.             }  
  44.             catch (Exception ex)  
  45.             {  
  46.                 return new List();  
  47.             }  
  48.         }  
  49.         ///   
  50.         /// 执行不带参数sql语句返回数据列表  
  51.         ///   
  52.         ///   
  53.         ///   
  54.         ///   
  55.         public static List SqlQuery(string sql)  
  56.         {  
  57.             if (string.IsNullOrEmpty(sql))  
  58.                 return new List();  
  59.             try  
  60.             {  
  61.                 using (itlogo_integralEntities db = new itlogo_integralEntities())  
  62.                 {  
  63.                     return db.Database.SqlQuery(sql).ToList();  
  64.                 }  
  65.             }  
  66.             catch (Exception ex)  
  67.             {  
  68.                 return new List();  
  69.             }  
  70.         }  
  71.         ///   
  72.         /// 执行带参数sql语句返回受影响行数  
  73.         ///   
  74.         ///   
  75.         ///   
  76.         ///   
  77.         public static int ExecuteSqlCommand(string sql, DbParameter[] args)  
  78.         {  
  79.             if (string.IsNullOrEmpty(sql))  
  80.                 return 0;  
  81.             try  
  82.             {  
  83.                 using (itlogo_integralEntities db = new itlogo_integralEntities())  
  84.                 {  
  85.                     return db.Database.ExecuteSqlCommand(sql, args);  
  86.                 }  
  87.             }  
  88.             catch (Exception ex)  
  89.             {  
  90.                 return 0;  
  91.             }  
  92.         }  
  93.         ///   
  94.         /// 执行sql语句返回收影响行数  
  95.         ///   
  96.         ///   
  97.         ///   
  98.         public static int ExecuteSqlCommand(string sql)  
  99.         {  
  100.             if (string.IsNullOrEmpty(sql))  
  101.                 return 0;  
  102.             try  
  103.             {  
  104.                 using (itlogo_integralEntities db = new itlogo_integralEntities())  
  105.                 {  
  106.                     return db.Database.ExecuteSqlCommand(sql);  
  107.                 }  
  108.             }  
  109.             catch (Exception ex)  
  110.             {  
  111.                 return 0;  
  112.             }  
  113.         }  
  114.   
  115.           

执行sql语句返回datatable

[csharp]  view plain  copy
 
  1. #region 执行sql语句返回datatable  
  2.   
  3.         public DataTable SqlQueryForDataTatable(Database database, string sql)  
  4.         {  
  5.   
  6.             SqlConnection conn = new System.Data.SqlClient.SqlConnection();  
  7.             conn.ConnectionString = database.Connection.ConnectionString;  
  8.             if (conn.State != ConnectionState.Open)  
  9.             {  
  10.                 conn.Open();  
  11.             }  
  12.               
  13.             SqlCommand cmd = new SqlCommand();  
  14.             cmd.Connection = conn;  
  15.             cmd.CommandText = sql;  
  16.   
  17.             SqlDataAdapter adapter = new SqlDataAdapter(cmd);  
  18.             DataTable table = new DataTable();  
  19.             adapter.Fill(table);  
  20.   
  21.             conn.Close();//连接需要关闭  
  22.             conn.Dispose();  
  23.             return table;  
  24.         }  
  25.   
  26.         public DataTable SqlQueryForDataTatable(Database database, string sql, DbParameter[] parameters)  
  27.         {  
  28.             SqlConnection conn = new System.Data.SqlClient.SqlConnection();  
  29.             conn.ConnectionString = database.Connection.ConnectionString;  
  30.             if (conn.State != ConnectionState.Open)  
  31.             {  
  32.                 conn.Open();  
  33.             }  
  34.             SqlCommand cmd = new SqlCommand();  
  35.             cmd.Connection = conn;  
  36.             cmd.CommandText = sql;  
  37.   
  38.             if (parameters != null && parameters.Length > 0)  
  39.             {  
  40.                 foreach (var item in parameters)  
  41.                 {  
  42.                     cmd.Parameters.Add(item);  
  43.                 }  
  44.             }  
  45.   
  46.             SqlDataAdapter adapter = new SqlDataAdapter(cmd);  
  47.             DataTable table = new DataTable();  
  48.             adapter.Fill(table);  
  49.             return table;  
  50.         }  
  51.         #endregion  



参考网址:

直接执行数据库命令

http://www.cnblogs.com/mend/archive/2012/06/11/2544599.html


使用dynamic linq 解决自定义查询的若干弊端

http://www.cnblogs.com/sword-successful/p/3318540.html


MVC3+EF4.1学习系列(十一)----EF4.1常见的问题解决(返回datatable)

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

你可能感兴趣的:(mvc,entity,framework)