首页 > 代码库 > 新闻发布系统后台

新闻发布系统后台

     作为第一个进行的Web系统,新闻发布系统的后台代码之前编写的机房没有太大的区别下面主要通过SQLHelper()方法的创建和重构总结下新闻系统的后台。

     首先是画用例图、类图、进行数据库的设计!这里不做详细说明每个系统开始的工作。然后编写D层代码SQLHelper(),以ExecuteNonQuery()方法来简单描述SQLHelper()的几次重构

 

1.主要结构

原来是针对单个的一个功能写一个方法,这里将方法的主要结构拿出,通过传入sql语句来执行类似的操作。

        public int ExecuteNonQuery(string sql)

        {

            string connStr ="server=liangliangPC;database=newssystem;user id=sa;password=123456";

            SqlConnection conn = newSqlConnection(connStr);

            conn.Open();    

            SqlCommand cmd = newSqlCommand(sql, conn);

            int res = cmd.ExecuteNonQuery();

            conn.Close();

            return res;

        }

 

2.抽取共同点

sqlhelper()中的几个方法,实例化SqlCommand等相同的内容抽出来

SqlConnection链接字符以配置文件的方式实现。

使用try  catch语句块using()using()当函数的中的内容执行完毕之后自动关闭数据库连接释放资源。

        public int ExecuteNonQuery(string sql)

        {

            int res;                   

            try

            {

                cmd = new SqlCommand(sql,GetConn());

                res = cmd.ExecuteNonQuery();

            }

            catch (Exception ex)

            {

                throw ex ;

            }

            finally

            {

                if (conn.State ==ConnectionState.Open)

                {

                    conn.Close();

                }

            }

            return res;

        }

 

3.添加参数

      主要是防止sql注入,关于sql注入的问题,新闻系统中只是讲解了拼接字符串的方式,其他的方式有兴趣的话可以在网上搜索哈!

      public int ExecuteNonQuery(stringsql,  SqlParameter[] paras)

        {

            int res;

            using (cmd = new SqlCommand(sql ,GetConn()))

            {

               cmd.Parameters.AddRange(paras);             

                res = cmd.ExecuteNonQuery();

            }

            return res;

        }

 

4.存储过程和触发器

  sql语句的另一种实现方式,只是他们写在数据库中

  使用的时候通过调用名称,代码中添加 cmd.CommandType =CommandType.StoredProcedure;即可


      public int ExecuteNonQuery(stringcmdText, CommandType ct, SqlParameter[] paras)

        {

            int res;

            using (cmd = new SqlCommand(cmdText, GetConn()))

            {

                cmd.Parameters.AddRange(paras);

                cmd.CommandType = ct;

                res = cmd.ExecuteNonQuery();

            }

            return res;

       }

 


总结:在通过对SQLHelper()的几次重构中完成了新闻后台代码!关于存储过程和触发器已经有人写过不少博客就不在描述了,重点还是sql语句的使用。

新闻发布系统后台