首页 > 技术文章 > ADO.net数据库连接,DBhelper封装(sql serve)

shallyJin 2019-10-29 14:52 原文

​​虽然有现成的封装方法,但是一定要知道的七大步骤。最重要的是不能忘记封装的时候,返回值

的处理!宇宙超级无敌巨重要!话不多说,直接上代码!这里使用的是SQL server数据库.

//创建链接字符串

            //string str = "data source=.;initial catalog=schoolDB;user ID=sa ;password=sa2008";

            string str = "server=.;database=schoolDB; uid=sa;pwd=sa2008";

            //2创建连接对象

            SqlConnection conn = new SqlConnection(str);

            //3打开连接

            conn.Open();

            //4创建sql语句

           // string sql = "insert into Course values('c#开发程序')";

            string sql = "select *from Students";

            //5创建命令对象

            SqlCommand comm = new SqlCommand(sql, conn);

            //6调用方法,执行数据语句

            //返回执行数量单个值,返回类型是object

            //object obj = comm.ExecuteScalar();

            //Console.WriteLine("数据的数量为:" + obj);

            //6-2执行增删除改,返回结果表示受影响的行数

            /*int num = comm.ExecuteNonQuery();

            if (num > 0)

            {

                Console.WriteLine("新增成功!");

            }

            else

            {

                Console.WriteLine("新增失败!");

            }*/

            //6-3 执行的是返回多个值的select语句

           /* SqlDataReader sdr= comm.ExecuteReader();

            //循环读取查询结果的每一行

            Console.WriteLine("学号\t密码\t姓名");

            while (sdr.Read())

            {

                Console.WriteLine("{0}\t{1}\t{2}",

                    sdr["scode"],sdr["sname"],sdr["saddress"]);

            }

            sdr.Close();

            //7关闭连接

            conn.Close();

            Console.Read();*/

基础七大步骤摆出来主要是方便理解,理解过后,我们再一次进行封装,就会如有神助,同时注意返回值的处理!!!!

namespace 数据库连接

{

    //DBhelper的封装

    class DBhelper

    {

          //创建连接字符串的静态字符串

        private static string str = "server=.;database=schoolDB;uid=sa;pwd=sa2008";

        //第一个方法,返回单个值

        public static object ExecuteScalar(string sql)

        {

            //using使用完后会自动释放其中的comm对象,实现程序入口的关闭

            using (SqlConnection conn = new SqlConnection(str))

            {

                conn.Open();

                SqlCommand comm = new SqlCommand(sql,conn);

                return comm.ExecuteScalar();

            }

        }

        public static int  ExecuteNonQuery(string sql)

        {

           //查询返回受影响的行数

            using (SqlConnection conn = new SqlConnection(str))

            {

                conn.Open();

                SqlCommand comm = new SqlCommand(sql, conn);

                return comm.ExecuteNonQuery();

            }

        }

        public static SqlDataReader ExecuteReader(string sql)

        {

            //查询返回数据库里面的多个参数,不能使用上面两个using的方法关闭

            SqlConnection conn = new SqlConnection(str);

              conn.Open();

              SqlCommand comm = new SqlCommand(sql, conn);

                return comm.ExecuteReader(CommandBehavior.CloseConnection);

       //在调用之前倒包,在datareader对象关闭的同时,让数据库连接也随之关闭

倒包:using system data;

        }

    }

}​​​​

 

推荐阅读