zoukankan      html  css  js  c++  java
  • asp.net使用SQLHelper操作数据库

    使用控件,能够方便开发人员的开发和使用,但是很多情况下,不能使用控件来实现,所以很多情况都需要使用ADO.NET操作数据库中的数据,SQLHelper是将ADO.NET中对数据操作的类和对象进行的封装的一个类库,使用SQLHelper能够提高数据库操作的效率。

    1.创建SQLHelper

    SQLHelper类经常在数据库开发中使用,不仅封装了数据库操作,也提高了数据库操作的安全性,SQLHelper在微软的开发中和DEMO中经常被使用,SQLHelper通常用于多层设计,如果需要使用SQLHelper类,可以到微软官方下载最新的SQLHelper类,也可以自行编写SQLHelper类。如果自行创建SQLHelper类,则在解决方案管理器中新建一个类库,创建类库后,删除自动生成的Class1类,并创建一个新类,类名为SQLHelper.

    如果使用下载的SQLHelper类,则可以单击解决方案管理器,单击右键,选择添加现有项,然后选择现有项目添加即可。在SQLHelper类下对数据操作进行封装,开发人员能够使用自己封装的类进行数据操作,示例代码如下所示

    #region //数据库连接串

            private static readonly string database = “数据库”; //配置数据库信息

            private static readonly string uid = “用户名”; //配置用户名信息

            private static readonly string pwd = “密码”; //配置密码信息

            private static readonly string server = “服务器”; //配置服务器信息

            private static readonly string condb = "server='"+ server +"';database='" + database + "';uid=

            '" + uid + "';pwd='" + pwd + "';Max Pool Size=100000;Min Pool Size=0;

            Connection Lifetime=0;packet size=32767;Connection Reset=false; async=true"; //设置连接字串

            #endregion

            #region//DataAdapter方法 返回DataSet数据集

            /// <summary>

            /// DataAdapter方法 返回DataSet数据集

            /// </summary>

            /// <param name="sqlCmd">SQL语句</param>

            /// <param name="command">操作参数 枚举类型</param>

            /// <returns></returns>

            public static DataSet DataAdapter(string sqlCmd, SDACmd command,  //实现适配器

            string tabName, params SqlParameter[] paraList)

            {

                SqlConnection con = new SqlConnection(condb); //创建连接对象

                SqlCommand cmd = new SqlCommand(); //创建Command对象

                cmd.Connection = con; //使用连接对象

                cmd.CommandText = sqlCmd; //配置连接字串

                if (paraList != null)

                {

                    cmd.CommandType = CommandType.Text; //配置Command类型

                    foreach (SqlParameter para in paraList) //遍历参数

                    { cmd.Parameters.Add(para); } //添加参数

                }

                SqlDataAdapter sda = new SqlDataAdapter(); //创建适配器

                switch (command) //查找条件

                {

                    case SDACmd.select: //如果为select执行

                        sda.SelectCommand = cmd;

                        break;

                    case SDACmd.insert: //如果为insert执行

                        sda.InsertCommand = cmd;

                        break;

                    case SDACmd.update: //如果为update执行

                        sda.UpdateCommand = cmd;

                        break;

                    case SDACmd.delete: //如果为delete执行

                        sda.DeleteCommand = cmd;

                        break;

                }

                DataSet ds = new DataSet(); //创建数据集

                sda.Fill(ds, tabName); //填充数据集

                return ds; //返回数据集

            }

    在上述代码中,还需要通过一个枚举类型进行switch操作,枚举类型用于判断执行的操作,示例代码如下所示。

    public enum SDACmd { select, delete, update, insert } //定义枚举类型

    定义的枚举类型用于在程序中进行筛选操作,用于指定SQL语句执行的操作。在SQLHelper类中,还需要封装DataReader方法进行DataReader的封装和实现,开发人员能够使用SQLHelper类中的DataReader方法进行数据库的读取,示例代码如下所示。

    public static SqlDataReader ExecReader(string sqlcmd, params SqlParameter[] paraList)

            {

                SqlConnection con = new SqlConnection(condb); //创建连接对象

                SqlCommand cmd = new SqlCommand(); //创建Command对象

                cmd.Connection = con; //使用连接

                cmd.CommandText = sqlcmd; //配置SQL语句

                if (paraList != null)

                {

                    cmd.CommandType = CommandType.Text; //配置Command类型

                    foreach (SqlParameter para in paraList)

                    { cmd.Parameters.Add(para); } //添加参数

                }

                con.Open(); //打开连接

                SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

                return sdr;

            }

    上述代码实现了DataReader对象,使用DataReader能够填充SqlDataReader对象并进行数据的循环输出。在ADO.NET中,通常需要执行SQL语句进行数据库的操作,在SQLHelper类中,同样需要封装执行SQL语句的操作以便能够快速执行数据操作。

            public static void ExecNonQuery(string sqlcmd, params SqlParameter[] paraList)

            {

                using (SqlConnection con = new SqlConnection(condb)) //创建连接对象

                {

                    SqlCommand cmd = new SqlCommand(); //创建Command对象

                    cmd.Connection = con; //使用连接

                    cmd.CommandText = sqlcmd; //配置执行类型

                    if (paraList != null)

                    {

                        cmd.CommandType = CommandType.Text; //配置执行类型

                        foreach (SqlParameter para in paraList)

                        { cmd.Parameters.Add(para); } //添加参数

                    }

                    con.Open(); //打开数据连接

                    cmd.ExecuteNonQuery(); //执行SQL语句

                }

            }

    上述代码编写了SQLHelper类操作数据库的函数,通过执行函数并传递参数,即可实现数据库的插入、更新和删除。

    2.使用SQLHelper

    创建完成SQLHelper类后,需要为应用程序配置SQLHelper的基本属性,代码如下所示。

            private static readonly string database = "mytable"; //配置数据库

            private static readonly string uid = "sa"; //配置用户名

            private static readonly string pwd ="sa"; //配置用户会密码

            private static readonly string server = "local"; //配置服务器的值

    上述代码为SQLHelper类配置了属性,当使用SQLHelper类时,系统会自动连接数据库,在完成使用后,系统会自动关闭数据库。如果需要在当前项目使用SQLHelper类,则需要添加引用来使用SQLHelper类,右击现有项目,在下拉菜单中选择【添加】选项,在【添加】选项中选择【现有项】选项,在弹出窗口中选择【项目】标签栏,就可以添加相同项目的类库

    引用添加完毕,在使用SQLHelper页面的CS页面中,需要添加命名空间,命名空间的名称和创建类库的名称相同,如果需要更改名称,可以通过修改类库的属性来修改。示例代码如下所示。

    using MYSQL;

    引用完毕后,就可以执行SQL语句,使用SQLHelper执行SQL语句非常方便,下面代码演示了如何执行插入、删除操作。

                string strsql = "insert into mynews values ('SQLHelper插入标题')"; //编写SQL语句

                SQLHelper.ExecNonQuery(strsql); //执行SQL语句

    上述代码运行后,则会执行插入操作,相比于ADO.NET,封装后的代码更加简便易懂,删除操作代码如下所示。

                string strsql2 = "delete form mynews where id=3"; //编写SQL语句

                SQLHelper.ExecNonQuery(strsql2); //执行SQL语句

    当需要执行SELECT语句时,可以通过SQLHelper.DataAdapter获取数据,示例代码如下所示。

                string strsql = "select * from mynews where id=3"; //编写SQL语句

                DataSet ds = SQLHelper.DataAdapter(strsql, SQLHelper.SDACmd.select, "mydatatable");

    上述代码通过SQLHelper.DataAdapter获取数据,并创建了一个mydatatable虚拟表,填充DataSet对象。当需要获取DataSet对象中的数据时,和普通的DataSet对象一样。SQLHelper封装了ADO.NET中的许多方法,为开发人员提高了效率,同时也增加了安全性和模块化的特性。

    注意:上述代码中的SQLHelper类能够执行的是SQL语句,如果需要执行存储过程,则需要更改SQLHelper类中的相应的CommandType属性的值。

  • 相关阅读:
    如何提高逻辑思维的能力 思维的层次 逻辑思维能力练习方式
    淘宝JAVA中间件Diamond详解之简介&快速使用 管理持久配置的系统
    java 取模运算% 实则取余 简述 例子 应用在数据库分库分表
    SpringMVC+Spring+mybatis项目从零开始--Spring mybatis mysql配置实现
    SpringMVC+Spring+mybatis项目从零开始--分布式项目结构搭建
    JS密码校验规则前台验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)
    12 个非常实用的 jQuery 代码片段
    html增加和删除div
    css改变hr颜色
    jquery怎么在点击li标签之后添加一个在class,点击下一个li时删除上一个class?
  • 原文地址:https://www.cnblogs.com/nicStudio/p/1939206.html
Copyright © 2011-2022 走看看