美文网首页
31优化数据访问——通用数据访问类的使用

31优化数据访问——通用数据访问类的使用

作者: 漠漠彡 | 来源:发表于2019-04-12 21:25 被阅读0次

1、实现代码的复用

方法:编写一个通用方法

代码复用技术的应用要求:

原则:提取不变的,封装变化的

技巧:不变的作为“方法体”,变化的作为“参数”

封装SQLHelp类class SQLHelp,集成查询结果

为避免重复新建对象的数据处理,直接将方法定义成静态,可以从主程序中直接调用

数据库连接参数:字符串定义为成员变量

private static  string connString = "Server=PC-20180530ADRL\\SQLEXPRESS;DataBase=StudentManageDB;Uid=sa;Pwd=201314";

(1)单一返回:封装ExecuteScalar方法

public static  object GetSingleResult(string sql)

        {

            SqlConnection conn = new SqlConnection(connString);

            SqlCommand cmd = new SqlCommand(sql, conn);

            conn.Open();

            object result = cmd.ExecuteScalar();

            conn.Close();

            return result;

        }

对应调用:

static void Main(string[] args)

        {

            string sql = "select Count(*) from Students";

            object result =SQLHelp.GetSingleResult(sql);

            Console.WriteLine(result.ToString());

            Console.Read();

        }

(2)封装ExecuteNonQuery方法

        /// <summary>

        /// 更新数据操作(insert delete update )

        /// </summary>

        /// <param name="sql"></param>

        /// <returns></returns>

        public  static int Update(string sql)

        {

            SqlConnection conn = new SqlConnection(connString);

            SqlCommand cmd = new SqlCommand(sql, conn);

            conn.Open();

            int result = cmd.ExecuteNonQuery();

            conn.Close();

            return result;

        }

(3)封装ExecuteReader方法

public static SqlDataReader GetReader(string sql)

        {

            SqlConnection conn = new SqlConnection(connString);

            conn.Open();

            SqlCommand cmd = new SqlCommand(sql, conn);

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

            //CommandBehavior.CloseConnection参数能够保证在外部关闭DataReader时,与之关联的Connection对象将随之关闭

            return objReader;

        }

调用:

static void Main(string[] args)

        {

            string sql = "select StudentName from Students";

            SqlDataReader objReader = SQLHelp.GetReader(sql);

            while(objReader.Read())

            {

                Console.WriteLine(objReader["StudentName"]);

            }

            objReader.Close();

            Console.Read();

        }

相关文章

网友评论

      本文标题:31优化数据访问——通用数据访问类的使用

      本文链接:https://www.haomeiwen.com/subject/vdccwqtx.html