作代码也有一点时间了,一直在不停的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( 0, 9 ) );
}
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();
*/
}
}
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( 0, 9 ) );
}
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();
*/
}
}