創建一個屬於自己的開發類庫

作代碼也有一點時間了,一直在不停的COPY和PASTE,能力漲的有限,深深的研究我也不太會,會用,能用好就行了,但總是做表面功夫,也得有點長進呀,今天沒什麼事,把平常用的一點代碼,改寫成一個類庫,編譯完成後,以後再做代碼,直接引用進來,方便。高手不要笑我,低手學習一下吧!
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Text;
using System.Security.Cryptography;
using System.Drawing;
using System.Collections;
using System.Web.SessionState;
using System.Web.UI.HtmlControls;

namespace PublicFunction
{
    
public class Public : System.Web.UI.WebControls.WebControl
    
{
        
///下面是打開數據庫和關閉數據庫的公用函數 
        private static  string ConnectionString = ConfigurationSettings.AppSettings["sqlconn"];
        
public  static  SqlConnection SqlConn =new SqlConnection(ConnectionString);
        
public static void SqlOpenDataBase()
        
{
            
if(SqlConn.State==ConnectionState.Open)
                SqlConn.Close();

            SqlConn.Open();
        }

        
public static void SqlCloseDataBase()
        
{
            SqlConn.Close();
        }




        
///如果有驗證所需的密碼,而且在其它數據聯接中,請打開下面幾行
        private static  string PassConnectionString = ConfigurationSettings.AppSettings["passconn"];
        
public  static  SqlConnection PassConn =new SqlConnection(PassConnectionString);
        
public static void PassOpenDataBase()
        
{
            
if(PassConn.State==ConnectionState.Open)
                PassConn.Close();

            PassConn.Open();
        }

        
public static void PassCloseDataBase()
        
{
            PassConn.Close();
        }

        
        
/* 1、編寫: 2004-8-25
            * 2、功能:讓控件得到焦點
            * 3、參數:System.Web.UI.Control control 任意已實例化的控件
            * 4、返回值: 無
            * 5、用途:使傳入該方法的控件得到焦點
            
*/

        
public static bool SetFocus(System.Web.UI.Control control)
        
{
            
            
if (HttpContext.Current.Request.Browser.JavaScript)
            
{
                control.Page.RegisterStartupScript(
"sf","<script language='javascript'>document.forms[0]." +
                    control.ClientID 
+".focus();</script>");
                
return true;
            }

            
return false;
        }

        
        
///用於轉換爲MD5加密字符串的函數
        public static string HashCryptString(string strText,string method)
        
{
            
if(method == "MD5")
            
{
                strText 
= System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strText,"MD5");
            }

            
else if(method == "SHA1")
            
{
                strText 
= System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strText,"SHA1");
            }

            
else if(method=="BLOG")//這個加密方式取自於.TextBlog的加密函數
            {
                strText 
= strText.ToLower();
                Byte[] clearBytes 
= new UnicodeEncoding().GetBytes(strText);
                Byte[] hashedBytes 
= ((HashAlgorithm) CryptoConfig.CreateFromName("MD5")).ComputeHash(clearBytes);
                
return BitConverter.ToString(hashedBytes);
            }


            
return strText;
       }


    
        
/// 
        
/// 輸出指定的信息
        
/// 
        
/// 
        
///一般引用時MessageBox(this,"我來也!");

        public static void MessageBox( Page page, string msg )
        
{
            StringBuilder StrScript 
= new StringBuilder(); 
            StrScript.Append( 
"<script language=javascript>" );
            StrScript.Append( 
"alert('"+ msg +"');" ); 
            StrScript.Append( 
"</script>" ); 
            
if ( ! page.IsStartupScriptRegistered( "MessageBox" ) )
            
{
                page.RegisterStartupScript( 
"MessageBox", StrScript.ToString() );
            }

        }

        

        
/// 
        
/// 取得隨機數
        
/// 
        
/// 隨機數的長度
        
/// 

        public static string GetRandNum( int randNumLength )
        
{
            System.Random randNum 
= new System.Random( unchecked( ( int ) DateTime.Now.Ticks ) );
            StringBuilder sb 
= new StringBuilder( randNumLength );
            
for ( int i = 0; i < randNumLength; i++ )
            
{
                sb.Append( randNum.Next( 
09 ) );
            }

            
return sb.ToString();
        }




        
/// 下面用於記錄cookie的使用
        
/// 

        
        
public static void SaveCookie(string CookieName,string CookieValue,double ExpiresTime)
        
{
            HttpCookie objCookie;
            HttpCookieCollection objCookieColl 
= HttpContext.Current.Response.Cookies;
            
for (int i=0;i<objCookieColl.Count-1;i++)
            
{
                objCookie 
= objCookieColl[i];
                
if (objCookie.Name == CookieName)
                
{
                    HttpContext.Current.Response.Cookies.Remove(CookieName);
                }

            }

            objCookie 
= null;
            objCookieColl
=null;
            
// Cookie有效期。
            HttpCookie myCookie = new HttpCookie(CookieName,CookieValue);
            myCookie.Expires 
= System.DateTime.Now.AddMinutes(ExpiresTime);
            HttpContext.Current.Response.Cookies.Add(myCookie);
        }


        
///使用方法:
        
///1:記錄
        
///SaveCookie([Cookie名字],[Cookie內容],[失效時間]);
        
        
///2:獲得cookie:
        
///string bbb=Server.HtmlEncode(Request.Cookies["NewCookie"].Value);
        
///Response.Write(bbb);
        
///


        
///真的要刪除嗎?

        public static void RealToDel(Button myButton)
        
{
          myButton.Attributes.Add(
"onclick","return confirm('您確定要刪除嗎?');");
        }


    
        
        
        
        
///用存儲過程執行命令:
        
///一、無返回值時

        /*
        SqlCommand myCommand=new SqlCommand("存儲過程名", Public.SqlConn);;
        myCommand.CommandType=CommandType.StoredProcedure;

        myCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,50));
        myCommand.Parameters["@UserName"].Value=Session["UserName"].ToString();

        Public.OpenDataBase();
        myCommand.ExecuteNonQuery();
        Public.CloseDataBase();
        
*/

        
///二、有返回值時:
        /*
        (1) 一般如果在存儲過程中沒有很多(>1)的返回值,可以直接用 select 返回 
            SqlCommand myCommand=new SqlCommand("存儲過程名", Public.PassWordConn);;
            myCommand.CommandType=CommandType.StoredProcedure;
            myCommand.Parameters.Add(new SqlParameter("@UserName",SqlDbType.VarChar,50));
            myCommand.Parameters["@UserName"].Value=UserName.Text.Trim();
                    
            Public.OpenDataBasePassWord();
            int Result=Int32.Parse(myCommand.ExecuteScalar().ToString());
            Public.CloseDataBasePassWord();
    
        
        
        (2)如果有多個需返回的值
        
        定義SQL存儲過程時,如:
        CREATE PROCEDURE CountProc
    @Count int output
     AS
    set @Count=1
    GO
        
        則在使用時:
        int output;

        
        SqlCommand myComm = new SqlCommand("ProcedureName",Public.SqlConn);
        myComm.CommandType = CommandType.StoredProcedure;
        myComm.Parameters.Add( new SqlParameter("@Output",SqlDbType.Int,4) );
        myComm.Parameters["@Output"].Direction = ParameterDirection.Output;
        Public.OpenDataBase();
        myComm.ExecuteNonQuery();
        output = Convert.ToInt32( myComm.Parameters["@Output"].Value );
        Public.CloseDataBase();        
        
*/


        
///三、返回DataSet時
        /*
         * 
            SqlCommand MyCommand=new SqlCommand([存儲過程名],Public.SqlConn);
            MyCmd.CommandType=CommandType.StoredProcedure;
              SqlDataAdapter da = new SqlDataAdapter(MyCommand);  
            DataSet ds = new DataSet("myTable");
            da.Fill(ds, "myTable");
            DataGrid1.DataSource=ds;
            DataGrid1.DataBind(); 
            Public.CloseDataBase();
         
*/





    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章