我们写Sqlhelp帮助类之前,我们现了解下ado.net的五大对象
Connection :
建立与特定数据源的连接。 所有 Connection 对象的基类均为 DbConnection 类,是所有数据库操作的基础,在对数据库操作之前要先建立数据连接。
Command
对象定义了将对数据源执行的指定命令。 表示要对数据库执行的一个 Transact-SQL 语句或存储过程。所有 Command 对象的基类均为 DbCommand 类。
DataReader
从数据源中读取只进且只读的数据流。 所有 DataReader 对象的基类均为 DbDataReader 类, DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时DataReader对象还是一种非常节省资源的数据对象。
DataAdapter
DataAdapter对象充当DataSet和数据源之间用于检索和保存数据的桥梁。DataAdapter类代表用于填充DataSet以及更新数据源的一组数据库命令和一个数据库连接。表示一组 SQL 命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
DataSet
驻留于内存的数据集,可以看做是内存中的数据库,内部用XML来描述数据。 也因此可以说DataSet是数据表的集合,它可以包含任意多个数据表(DataTable), 独立于各种数据源。
前面说了这么多,现在我们来写Sqlhelp吧!!
首先我们添加一个配置文件(App.config),然后把你要访问的数据库服务名,用户名,密码和数据库名称 添加到配置文件中
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="sqlcon" connectionString="server=.;uid=sa;pwd=sa;database=OA"/> </connectionStrings> </configuration>
现在配置文件写好了,我们开始操作吧
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SqlHelp { /// <summary> /// 数据库帮助类 /// </summary> public static class Sqlcommand { private static string sqlcon = ConfigurationManager.ConnectionStrings["sqlcon"].ToString(); #region 获取所有数据 public static DataTable ExecuteTable(string text,CommandType type, SqlParameter[]pms) { DataTable dt = new DataTable(); using (SqlConnection con=new SqlConnection(sqlcon)) { con.Open(); using (SqlDataAdapter adapter=new SqlDataAdapter(text,con)) { adapter.SelectCommand.CommandType = type; if (pms!=null) { adapter.SelectCommand.Parameters.AddRange(pms); adapter.Fill(dt); } return dt; } } } #endregion #region 增加,删除修改,返回所影响的行数 public static int ExecuteNonQuery(string text,CommandType type, SqlParameter[]pms) { using (SqlConnection con=new SqlConnection(sqlcon)) { con.Open(); using (SqlCommand cmd=new SqlCommand(text,con)) { cmd.CommandType = type; if (pms!=null) { cmd.Parameters.AddRange(pms); } return cmd.ExecuteNonQuery(); } } } #endregion #region ExecuteReader单项只读数据 public static SqlDataReader ExecuteReader(string text, CommandType type, SqlParameter[] pms) { using (SqlConnection con=new SqlConnection(sqlcon)) { con.Open(); using (SqlCommand cmd=new SqlCommand(text,con)) { cmd.CommandType = type; if (pms!=null) { cmd.Parameters.AddRange(pms); } SqlDataReader reader= cmd.ExecuteReader(); return reader; } } } #endregion } }
其实现在有很多流行的ORM框架像 EF,Dapper,NHibernate 等,其实他们底层就是拿Ado.Net做的,所以相对来说他们并没有我们自己写的灵活(真香警告)。。。
第一篇博客,喜欢点赞,本人菜鸟,有无不足之处还请指出。。。。