码迷,mamicode.com
首页 > 其他好文 > 详细

HRMSYS项目源码分析(一)

时间:2015-05-13 23:15:19      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

 

 (一) 定义一个Class类名为SqlHelper

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="connstr"
         connectionString="Data Source=.; Initial Catalog=HRMSYSDB;User ID=hrmsa;Password=love@beijing"/>
  </connectionStrings>
  <appSettings>
    <add key="passwordSalt" value="love?P3@9"/>
    <add key="aaa" value="333"/>
  </appSettings>
</configuration>

 

 

 

  首先把数据库连接代码放到配置文件中,利用connectionString add标签,其次把MD5加盐的字符串放入appSetting,add标签,利用key-value键值对。

  public static readonly string connstr =
            ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

  取出配置文件中数据库链接代码,设置为static变量,用静态变量模拟全局变量,设置为readonly只读字段,用ConfigurationManager,需要引用System.Configuration.

 

技术分享
   public static int ExecuteNonQuery(string sql, 
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();
                }
            }
        }
View Code

 

 

 

  定义一个返回值是int的静态函数,静态方法调用更方便,不需要new一个对象(实例化类),输入sql语句和一个sqlparameter参数数组,using是为了执行完就释放空间,首先新建一个Sqlconnection对象,需要用到配置文件中参数。然后打开数据库,执行CommandText属性。返回一个int值。一般用到updata和insert还有delete。

 

   public static object ExecuteScalar(string sql,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteScalar();
                }
            }
        }

 

同样的操作。然后返回一个值。主要用来执行select语句。返回一个父类

 public static DataTable ExecuteDataTable(string sql,
            params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);

                    DataSet dataset = new DataSet();
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    adapter.Fill(dataset);
                    return dataset.Tables[0];
                }
            }

 

 利用Dataset类,首先new一个,然后把cmd装入SqlDataAdapter,在把SqlDaraAdaper装入(Fill属性)DataSet中。返回Dataset中的table【0】表,即第一个表,返回的是一个Datatable类,里面有rows和ROWS【“列名”】。

 

  

  public static object FromDbValue(object value)
        {
            if (value == DBNull.Value)
            {
                return null;
            }
            else
            {
                return value;
            }
        }

        public static object ToDbValue(object value)
        {
            if (value == null)
            {
                return DBNull.Value;
            }
            else
            {
                return value;
            }
        }

  连个静态方法,返回的都是object类,他们的作用就是把从数据库里面取出的列(属性,字段),若是DBNULL.Value(在数据库里表示null),返回null。装入数据库中也是一样,若是null的字段,全部转换成DBNull.Value.

(二)定义一个CommonHelper类,用来放通用的代码

 public static string GetMD5(string sDataIn)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] bytValue, bytHash;
            bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
            bytHash = md5.ComputeHash(bytValue);
            md5.Clear();
            string sTemp = "";
            for (int i = 0; i < bytHash.Length; i++)
            {
                sTemp += bytHash[i].ToString("X").PadLeft(2, 0);
            }
            return sTemp.ToLower();
        }

 

  首先写一个MD5加密算法的方法,把一个字符输入,返回这个字符串的MD5代码

 

 public static string GetPasswordSalt()
        {
            string salt = ConfigurationManager.AppSettings["passwordSalt"];
            return salt;
        }

  取出加盐中的字符

 

HRMSYS项目源码分析(一)

标签:

原文地址:http://www.cnblogs.com/dandandeyoushangnan/p/4502011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!