数据库访问类(使用存储过程的)

简介:

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public class DataBase { //使用单件模式,只能实例化一个对象,所有方法都是静态方法; private static DataBase _instance; public DataBase() { } public static DataBase GetInstance() { if(_instance==null) { _instance = new DataBase(); } return _instance; } //得到并返回一个打开的数据库链接。 public static SqlConnection ReturnConn() { string strConn = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; SqlConnection Conn = new SqlConnection(strConn); if (Conn.State.Equals(ConnectionState.Closed)) { Conn.Open(); } return Conn; } //①将存储过程转换成SqlCommand;(存储过程名,字段集合,数据库连接) public static SqlCommand CreateCmd(string procName, SqlParameter[] prams, SqlConnection Conn) { SqlConnection SqlConn = Conn; if (SqlConn.State.Equals(ConnectionState.Closed)) { SqlConn.Open(); } SqlCommand Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.Connection = SqlConn; Cmd.CommandText = procName; if (prams != null) { foreach (SqlParameter parameter in prams) { if (parameter != null) { Cmd.Parameters.Add(parameter); } } } return Cmd; } //②将存储过程转换成SqlCommand;(存储过程名,字段集合) public static SqlCommand CreateCmd(string procName, SqlParameter[] prams) { SqlConnection Conn = ReturnConn(); SqlCommand Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.Connection = Conn; Cmd.CommandText = procName; if (prams != null) { foreach (SqlParameter parameter in prams) { if (parameter != null) { Cmd.Parameters.Add(parameter); } } } return Cmd; } //③将存储过程转换成SqlCommand;(存储过程名,数据库连接) public static SqlCommand CreateCmd(string procName,SqlConnection Conn) { SqlConnection SqlConn = Conn; if (SqlConn.State.Equals(ConnectionState.Closed)) { SqlConn.Open(); } SqlCommand Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.Connection = SqlConn; Cmd.CommandText = procName; return Cmd; } //④将存储过程转换成SqlCommand;(存储过程名) public static SqlCommand CreateCmd(string procName) { SqlConnection Conn = ReturnConn(); SqlCommand Cmd = new SqlCommand(); Cmd.CommandType = CommandType.StoredProcedure; Cmd.Connection = Conn; Cmd.CommandText = procName; return Cmd; } //①执行存储过程并返回一个SqlDataReader对象,(存储过程名,字段集合) public static SqlDataReader RunProcGetReader(string procName, SqlParameter[] prams) { SqlCommand Cmd = CreateCmd(procName, prams); SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection); return Dr; } //②执行存储过程并返回一个SqlDataReader对象,(存储过程名,字段集合,数据库连接) public static SqlDataReader RunProcGetReader(string procName, SqlParameter[] prams, SqlConnection Conn) { SqlCommand Cmd = CreateCmd(procName, prams,Conn); SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection); return Dr; } //③执行存储过程并返回一个SqlDataReader对象,(存储过程名,数据库连接) public static SqlDataReader RunProcGetReader(string procName, SqlConnection Conn) { SqlCommand Cmd = CreateCmd(procName,Conn); SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection); return Dr; } //④执行存储过程并返回一个SqlDataReader对象,(存储过程名) public static SqlDataReader RunProcGetReader(string procName) { SqlCommand Cmd = CreateCmd(procName); SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection); return Dr; } //执行存储过程并返回一个DataTable对象,(存储过程名,字段集合,数据库连接) public static DataTable RunProcGetTable(string procName, SqlParameter[] prams, SqlConnection Conn) { SqlCommand Cmd = CreateCmd(procName, prams, Conn); SqlDataAdapter Dtr = new SqlDataAdapter(); DataSet Ds = new DataSet(); Dtr.SelectCommand = Cmd; Dtr.Fill(Ds); DataTable Dt = Ds.Tables[0]; Conn.Close(); return Dt; } //①直接执行存储过程,返回整形数据。(存储过程名) public static int RunExecute(string procName) { SqlConnection Conn = ReturnConn(); SqlCommand Cmd = CreateCmd(procName,Conn); int intResult = Cmd.ExecuteNonQuery(); Conn.Close(); return intResult; } //②直接执行存储过程,返回整形数据。(存储过程名,字段集合) public static int RunExecute(string procName,SqlParameter[] prams) { SqlConnection Conn = ReturnConn(); SqlCommand Cmd = CreateCmd(procName,prams,Conn); int intResult = Cmd.ExecuteNonQuery(); Conn.Close(); return intResult; } public static int RunExecuteScalar(string procName) { SqlConnection Conn = ReturnConn(); SqlCommand Cmd = CreateCmd(procName, Conn); int intResult = Convert.ToInt32(Cmd.ExecuteScalar()); Conn.Close(); return intResult; } public static int RunExecuteScalar(string procName, SqlParameter[] prams) { SqlConnection Conn = ReturnConn(); SqlCommand Cmd = CreateCmd(procName, prams, Conn); int intResult =Convert.ToInt32(Cmd.ExecuteScalar()); Conn.Close(); return intResult; } }

目录
相关文章
|
8月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
690 2
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
427 11
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
376 3
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
365 2
|
存储 SQL 关系型数据库
MySql数据库---存储过程
MySql数据库---存储过程
277 5
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
SQL 安全 Java
探索研究Servlet 数据库访问
【9月更文挑战第28天】
228 1
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
397 6