ADO.NET 对数据操作 以及如何通过C# 事务批量导…
2018-06-17 19:01:15来源:未知 阅读 ()
public static class SQLHelper { static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString(); /// <summary> /// 执行增删改 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static int Update(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); return cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } /// <summary> /// 执行单一结果查询 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static object GetSingleResult(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); return cmd.ExecuteScalar(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } /// <summary> /// 执行一个结果集查询 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static SqlDataReader GetReader(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); return cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception ex) { conn.Close(); throw new Exception(ex.Message); } } /// <summary> /// 执行返回数据集的查询 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static SqlDataAdapter GetDataSet(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); //创建适配器对象 SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); try { conn.Open(); da.Fill(ds);//使用数据适配器填充数据集 return da; } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } //有参方法(其它方法大家自己去对应了写就可以了) public static SqlDataReader GetReader(string sql,SqlParameter[] param) { SqlConnection conn=new SqlConnection(connString); SqlCommand cmd=new SqlCommand(sql,conn); try{ conn.Open(); if(param!=null) { cmd.Parameters.AddRange(param); } return cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch(Exception) { throw; } }
/// <summary> /// 启用事务执行多条sql语句 /// </summary> /// <param name="sqlList">插入的sql语句</param> /// <returns></returns> public static bool UpdateByTran(List<string> sqlList) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(); cmd.Connection=conn; try { conn.Open(); cmd.Transaction = conn.BeginTransaction(); foreach (string itemSql in sqlList) { cmd.CommandText = itemSql; cmd.ExecuteNonQuery(); } cmd.Transaction.Commit(); return true; } catch (Exception ex) { if (cmd.Transaction != null) { cmd.Transaction.Rollback(); } throw new Exception("调用事务出错" + ex.Message); } finally { if (cmd.Transaction!=null) { cmd.Transaction = null; } conn.Close(); } }
-------------------------------------执行有参存储过程----------------------------------- public static int UpdateByProcedure(string procedureName, SqlParameter[] param) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(); try { conn.Open(); cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure;//声明当前调用的是存储过程 cmd.CommandText = procedureName;//存储过程名称 cmd.Parameters.AddRange(param);//添加输入参数 int result = cmd.ExecuteNonQuery(); return result; } catch (Exception ex) { throw ex; } finally { conn.Close(); } }
对数据库操作的常用方法
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Nuget快捷实践
- FireDAC 下的 Sqlite [3] - 获取数据库的基本信息【转载自万 2020-05-26
- Delphi中DBGrid 表中双击直接修改数据(02) 2020-03-28
- JSON文本文件导入到Sqlite3数据库 2020-03-02
- TChart-数据编辑(TChartListBox,TeeCommander) 2020-02-21
- Intraweb IIS发布,数据连接问题 2019-12-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash