MVC-EF数据操作(一)

EF数据操作

  新建一个类库,命名为DBUtility

DbHelper类

  该类主要执行各种SQL语句,定义一个私有的string类型数据库连接串conStr,在构造里面给其赋值

1         /// <summary>
2         /// 数据库连接串
3         /// </summary>
4         private string conStr;// = ConfigurationManager.ConnectionStrings["DbConStr"].ConnectionString;
5
6         public DbHelper(string dbConStr)
7         {
8             conStr = dbConStr;
9         }

  执行简单的SQL语句的各个方法

  1         /// <summary>
  2         /// 返回DataTable
  3         /// </summary>
  4         /// <param name="strSql"></param>
  5         /// <returns></returns>
  6         public DataTable GetDataTable(string strSql)
  7         {
  8             try
  9             {
 10                 using (SqlConnection con = new SqlConnection(conStr))
 11                 {
 12                     DataSet ds = new DataSet();
 13                     SqlDataAdapter da = new SqlDataAdapter(strSql, con);
 14                     da.Fill(ds);
 15                     return ds.Tables[0];
 16                 }
 17             }
 18             catch (Exception ex)
 19             {
 20                 return null;
 21                 throw ex;
 22             }
 23         }
 24
 25         /// <summary>
 26         /// 执行sql,返回受影响的行数
 27         /// </summary>
 28         /// <param name="strSql"></param>
 29         /// <returns></returns>
 30         public bool ExecuteSql(string strSql)
 31         {
 32             try
 33             {
 34                 using (SqlConnection con = new SqlConnection(conStr))
 35                 {
 36                     SqlCommand command = new SqlCommand(strSql, con);
 37                     con.Open();
 38                     return command.ExecuteNonQuery() > 0;
 39                 }
 40             }
 41             catch
 42             {
 43                 return false;
 44             }
 45         }
 46
 47         /// <summary>
 48         /// 执行SQL命令
 49         /// </summary>
 50         /// <param name="cmd"></param>
 51         /// <returns></returns>
 52         public int ExecuteCommand(SqlCommand cmd)
 53         {
 54             try
 55             {
 56                 using (SqlConnection con = new SqlConnection(conStr))
 57                 {
 58                     cmd.Connection = con;
 59                     con.Open();
 60                     return cmd.ExecuteNonQuery();
 61                 }
 62             }
 63             catch
 64             {
 65                 return -1;
 66             }
 67         }
 68
 69         /// <summary>
 70         /// 执行sql,返回首行首列
 71         /// </summary>
 72         /// <param name="strSql"></param>
 73         /// <returns></returns>
 74         public object ExecuteScalar(string strSql)
 75         {
 76             try
 77             {
 78                 using (SqlConnection con = new SqlConnection(conStr))
 79                 {
 80                     SqlCommand command = new SqlCommand(strSql, con);
 81                     con.Open();
 82                     return command.ExecuteScalar();
 83                 }
 84             }
 85             catch (Exception ex)
 86             {
 87                 throw ex;
 88             }
 89         }
 90
 91         /// <summary>
 92         /// 执行事务
 93         /// </summary>
 94         /// <param name="sqlStrList"></param>
 95         /// <returns></returns>
 96         public bool ExecuteSqlTran(List<string> sqlStrList)
 97         {
 98             try
 99             {
100                 using (SqlConnection con = new SqlConnection(conStr))
101                 {
102                     con.Open();
103                     using (SqlTransaction sqlTransaction = con.BeginTransaction())
104                     {
105                         try
106                         {
107                             foreach (string sqlStr in sqlStrList)
108                             {
109                                 SqlCommand command = new SqlCommand(sqlStr, con);
110                                 command.Transaction = sqlTransaction;
111                                 command.ExecuteNonQuery();
112                             }
113                             sqlTransaction.Commit();
114                             return true;
115                         }
116                         catch (Exception transEx)
117                         {
118                             sqlTransaction.Rollback();
119                             return false;
120                             throw transEx;
121                         }
122                     }
123                 }
124             }
125             catch (Exception ex)
126             {
127                 return false;
128                 throw ex;
129             }
130         }

  执行带参数的SQL语句的方法

 1         /// <summary>
 2         ///  返回DataTable
 3         /// </summary>
 4         /// <param name="str"></param>
 5         /// <param name="values"></param>
 6         /// <returns></returns>
 7         public DataTable GetDataTable(string str, params SqlParameter[] values)
 8         {
 9             try
10             {
11                 using (SqlConnection con = new SqlConnection(conStr))
12                 {
13                     DataSet ds = new DataSet();
14                     SqlCommand command = new SqlCommand(str, con);
15                     command.Parameters.AddRange(values);
16                     SqlDataAdapter da = new SqlDataAdapter(command);
17                     da.Fill(ds);
18                     return ds.Tables[0];
19                 }
20             }
21             catch (Exception ex)
22             {
23                 return null;
24                 throw ex;
25             }
26         }
27
28         /// <summary>
29         /// 执行多条SQL语句,实现数据库事务。
30         /// </summary>
31         /// <param name="sqlDic"></param>
32         public void ExecuteSqlTran(Dictionary<string, SqlParameter[]> sqlDic)
33         {
34             using (SqlConnection conn = new SqlConnection(conStr))
35             {
36                 conn.Open();
37                 using (SqlTransaction trans = conn.BeginTransaction())
38                 {
39                     SqlCommand cmd = new SqlCommand();
40                     try
41                     {
42                         //循环
43                         foreach (var dic in sqlDic)
44                         {
45                             SqlCommand command = new SqlCommand(dic.Key, conn);
46                             if (dic.Value != null)
47                             {
48                                 command.Parameters.AddRange(dic.Value);
49                             }
50                             command.Transaction = trans;
51                             command.ExecuteNonQuery();
52                         }
53                         trans.Commit();
54                     }
55                     catch
56                     {
57                         trans.Rollback();
58                         throw;
59                     }
60                 }
61             }
62         }

时间: 2024-11-03 01:28:10

MVC-EF数据操作(一)的相关文章

mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决

在EF5.0添加实体数据到数据库的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误 解决: SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled =

MVC+EF 的增删改查操作

1. //创建EF映射对象数据集 static Models.db_JiaoYouEntities DbDeleteData = new Models.db_JiaoYouEntities(); 2. #region 得到数据集合+Query() /// <summary> /// 得到数据集合 /// </summary> /// <returns></returns> public List<Models.tb_Msg> Query() {

EF实体框架数据操作基类(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct

EF实体框架数据操作接口(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.

EF实体框架数据操作接口

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.

EF实体框架数据操作基类

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct

BIM工程信息管理系统-EF实体框架数据操作基类

EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// <summary> /// MSSQL数据库 数据层的父类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseDAL<T> where T :

MVC+EF 理解和实现仓储模式和工作单元模式

MVC+EF 理解和实现仓储模式和工作单元模式 原文:Understanding Repository and Unit of Work Pattern and Implementing Generic Repository in ASP.NET MVC using Entity Framework 文章介绍 在这篇文章中,我们试着来理解Repository(下文简称仓储)和Unit of Work(下文简称工作单元)模式.同时我们使用ASP.NET MVC和Entity Framework 搭

EF框架操作postgresql,实现WKT类型坐标的插入,查询,以及判断是否相交

1.组件配置 首先,要下载.NET for Postgresql的驱动,npgsql,EF6,以及EntityFramework6.Npgsql,版本号 3.1.1.0. 由于是mvc项目,所以,把相应的配置文件写在web.config里面,如下: 1 <configSections> 2 <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?L