• HRMSYS项目源码分析(一)


     (一) 定义一个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;
            }

      取出加盐中的字符

  • 相关阅读:
    HDU 4350 Card
    HDU 4287 Intelligent IME
    POJ Stars
    字符串处理
    NYOJ 63 小猴子下落
    在 DataGrid 控件中显示 SQL Server 数据库中的数据
    Linq to sql学习之查询句法
    SqlMethods
    SQLSERVER 2008 R2中的全文检索
    分享学习网站大全
  • 原文地址:https://www.cnblogs.com/dandandeyoushangnan/p/4502011.html
Copyright © 2020-2023  润新知