实用类:UtilityClass 包含如下方法

判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false

验证手机号是否正确 13,15,18

验证邮箱

验证网址

MD5加密,返回32位的字符串

把字符串的第一个字符变为大写

判断一个字符串是否是时间

生成随机数方法 小于9位

检查某个文件是否存在于磁盘上,存在--true,不存在--false

转换相对路径为物理路径

截取字符枚举值

地址栏传值加密/解密

格式化要显示的内容,主要用于在网页上显示由textarea产生的内容

判断当前访问是否来自非IE浏览器软件

     SQL操作类:DBAccess 包含如下方法

实用类:UtilityClass 包含如下方法

判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false

验证手机号是否正确 13,15,18

验证邮箱

验证网址

MD5加密,返回32位的字符串

把字符串的第一个字符变为大写

判断一个字符串是否是时间

生成随机数方法 小于9位

检查某个文件是否存在于磁盘上,存在--true,不存在--false

转换相对路径为物理路径

截取字符枚举值

地址栏传值加密/解密

格式化要显示的内容,主要用于在网页上显示由textarea产生的内容

判断当前访问是否来自非IE浏览器软件

     SQL操作类:DBAccess 包含如下方法

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 public class DBAccess
    {
        private static readonly string _connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();

// ExecuteNonQuery
        public static int ExecuteNonQuery(string commandText)
        {
            return Sqlhelper.ExecuteNonQuery(_connectionString, CommandType.Text, commandText);
        }
        public static int ExecuteNonQuery(string commandText, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteNonQuery(_connectionString, CommandType.Text, commandText, cmdParameters);
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="cmdParameters"></param>
        /// <returns></returns>
        public static int ExecuteNonQueryProc(string procName,params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteNonQuery(_connectionString, CommandType.StoredProcedure, procName, cmdParameters);

}

// ExecuteDataset
        public static DataSet ExecuteDataset(string commandText)
        {
            return Sqlhelper.ExecuteDataset(_connectionString, CommandType.Text, commandText);
        }
        public static DataSet ExecuteDataset(string commandText, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteDataset(_connectionString, CommandType.Text, commandText, cmdParameters);
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="cmdParameters"></param>
        /// <returns></returns>
        public static DataSet ExecuteDatasetProc(string procName, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteDataset(_connectionString, CommandType.StoredProcedure, procName, cmdParameters);
        }

// ExecuteReader
        public static SqlDataReader ExecuteReader(string commandText)
        {
            return Sqlhelper.ExecuteReader(_connectionString, CommandType.Text, commandText);
        }
        public static SqlDataReader ExecuteReader(string commandText, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteReader(_connectionString, CommandType.Text, commandText, cmdParameters);
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="cmdParameters"></param>
        /// <returns></returns>
        public static SqlDataReader ExecuteReaderProc(string procName, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteReader(_connectionString, CommandType.StoredProcedure, procName, cmdParameters);
        }

// ExecuteScalar
        public static object ExecuteScalar(string commandText)
        {
            return Sqlhelper.ExecuteScalar(_connectionString, CommandType.Text, commandText);
        }
        public static object ExecuteScalar(string commandText, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteScalar(_connectionString, CommandType.Text, commandText, cmdParameters);
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName"></param>
        /// <param name="cmdParameters"></param>
        /// <returns></returns>
        public static object ExecuteScalarProc(string procName, params SqlParameter[] cmdParameters)
        {
            return Sqlhelper.ExecuteScalar(_connectionString, CommandType.StoredProcedure, procName, cmdParameters);
        }
    }

Json操作类:JsonHelper包含如下方法

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1  /*
           添加引用 System.Runtime.Serialization
           添加引用 System.ServiceModel.Web
         */
    public static class JsonHelper
    {
        /// <summary>
        /// 格式化成Json字符串
        /// </summary>
        /// <param name="obj">需要格式化的对象</param>
        /// <returns>Json字符串</returns>
        public static string ToJson(this object obj)
        {
            // 首先,当然是JSON序列化
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());

// 定义一个stream用来存发序列化之后的内容
            Stream stream = new MemoryStream();
            serializer.WriteObject(stream, obj);

// 从头到尾将stream读取成一个字符串形式的数据,并且返回
            stream.Position = 0;
            StreamReader streamReader = new StreamReader(stream);
            return streamReader.ReadToEnd();
        }
        //DataSetToJson
        public static string ToJSON(DataSet dataSet, IDictionary<string, IDictionary<string, string>> details)
        {
            string json = string.Empty;
            if (dataSet != null && dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
            {
                int i = 0, j = 0;
                json += "[";
                foreach (DataRow row in dataSet.Tables[0].Rows)
                {
                    if (i == 0) { } else { json += ","; }
                    j = 0;
                    json += "{";
                    foreach (DataColumn column in dataSet.Tables[0].Columns)
                    {
                        if (j == 0) { } else { json += ","; }

if (details != null && details.ContainsKey(column.ColumnName))
                        {
                            IDictionary<string, string> dict = details[column.ColumnName] as IDictionary<string, string>;

if (dict != null && dict.ContainsKey(row[column].ToString()))
                                json += string.Format("'{0}':'{1}'", column.ColumnName.ToLower(), dict[row[column].ToString()]);
                            else
                                json += string.Format("'{0}':'{1}'", column.ColumnName.ToLower(), row[column].ToString());
                        }
                        else
                            json += string.Format("'{0}':'{1}'", column.ColumnName.ToLower(), row[column].ToString());

j++;
                    }
                    json += "}";
                    i++;
                }
                json += "]";
            }

//json = "{\"result\":\"" + json + "\"}";
            return json;
        }
    }

网页Messagebox:

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 public class MessageBox : System.Web.UI.Page
    {
        public MessageBox()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }
        public static void Show(System.Web.UI.Page page, string msg)
        {

page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");

}

public static void ShowAndRedirect(System.Web.UI.Page page, string msg, string url)
        {
            StringBuilder Builder = new StringBuilder();

Builder.Append("<script language='javascript' defer>");
            Builder.AppendFormat("alert('{0}');", msg);
            Builder.AppendFormat("self.location.href='{0}'", url);
            Builder.Append("</script>");
            page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString());

}
        /// <summary>
        /// 控件点击 消息确认提示框
        /// </summary>
        /// <param name="page">当前页面指针,一般为this</param>
        /// <param name="msg">提示信息</param>
        public static void ShowConfirm(System.Web.UI.WebControls.WebControl Control, string msg)
        {
            //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}");
            Control.Attributes.Add("onclick", "return confirm('" + msg + "');");
        }
        /// <summary>
        /// 信息提示
        /// </summary>
        /// <param name="mess"></param>
        //public virtual void Alert(string mess)
        //{
        //    ClientScript.RegisterStartupScript(this.GetType(), "Alert", "<script language = javascript>alert(\"提示:" + mess.Replace("\r\n", "") + "\")</script>");
        //}
    }

EXCEL操作类,包含动态EXCEL导入导出方法:

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  1 public class ExcelM:Page
    {
        /// <summary>
        /// 导出Excel Datatable版本
        /// </summary>
        /// <param name="dt">导出的Datatable</param>
        /// <param name="ExcelName">导出EXCEL的名称 不需要要带有扩展名_xls</param>
        public static void ExportExcelDT(DataTable dt, string Title)
        {
            HttpResponse resp = System.Web.HttpContext.Current.Response;
            string ExcelName = Title + DateTime.Now.ToString("yyyyMMddHHmmss");
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + ExcelName + ".xls");
            string colHeaders = "", ls_item = "";
            DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
            int i = 0;
            int cl = dt.Columns.Count;
            //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
            resp.Write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head><body><table border=1><tr style=\"background-color:#000088; color:White;border: Gray 1px solid;text-align:center\">");
            for (i = 0; i < cl; i++)
            {
                colHeaders += "<th>" + dt.Columns[i].Caption.ToString() + "</th>";
            }
            resp.Write(colHeaders + "</tr>");
            //向HTTP输出流中写入取得的数据信息
            //逐行处理数据
            foreach (DataRow row in myRow)
            {
                //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据  
                ls_item = "<tr bgcolor=#ABCDC1>";
                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))//最后一列,加n
                    {
                        ls_item += "<td>" + row[i].ToString() + "</td></tr>";
                    }
                    else
                    {
                        ls_item += "<td>" + row[i].ToString() + "</td>";
                    }
                }
                resp.Write(ls_item);
            }
            resp.Write("</table></body></html>");
            resp.End();
        }
        public enum eControl { GridView,Repeater}
        /// <summary>
        /// 控件导出EXCEL
        /// </summary>
        /// <param name="dataControl">控件名称</param>
        /// <param name="dt">要导出的Datatable数据</param>
        /// <param name="title">名称</param>
        /// <param name="Control">控件类型 GridView or Repeater</param>
        public static void ExportExcelDataControl(object dataControl, ref DataTable dt, string title, eControl Control)
        {
            HttpResponse Response = System.Web.HttpContext.Current.Response;
            StringWriter objStringWriter = new StringWriter();
            HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);

if (Control == eControl.GridView)
            {
                GridView gvList = (GridView)dataControl;
                gvList.DataSource = dt;
                gvList.DataBind();
                gvList.RenderControl(objHtmlTextWriter);
            }
            if (Control == eControl.Repeater)
            {
                Repeater rpList = (Repeater)dataControl;
                rpList.DataSource = dt;
                rpList.DataBind();
                rpList.RenderControl(objHtmlTextWriter);
            }
            string style = @"<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><style> .text { mso-number-format:\@; } </style></head><body>";
            string filename = title + DateTime.Now.ToString("yyyyMMddHHmmss");
            Response.Clear();
            Response.Buffer = true;
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
            Response.ContentType = "application/ms-excel";
            Response.Write(style);
            Response.Write(objStringWriter.ToString());
            Response.Write("</body></html>");
            Response.End();
        }
        /// <summary>
        /// Gridview重载函数
        /// </summary>
        /// <param name="control"></param>
        public override void VerifyRenderingInServerForm(System.Web.UI.Control control) { }
        private static readonly string _connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();
        /// <summary>
        /// EXCEL导入到数据库指定表 需配置XML文件
        /// tableName 即将导入的表名
        /// OutColumn EXCEL中对应的列名 默认第一行为列名
        /// TableColumn 数据库表中对应的列名
        /// CType 导入列的数据类型 以数据库中为准
        /// Clong 导入列的长度
        /// </summary>
        /// <param name="filePath">上传EXCEL的路径</param>
        /// <param name="erroMsg">错误信息</param>
        public static void ExcelToTable(string filePath,out string erroMsg)
        {
            try
            {
                erroMsg = "";
                DataTable dtExcel = GetExcelFileData(filePath);
                //过滤dtExcel 中的空行
                for (int i = 0; i < dtExcel.Rows.Count; i++)
                {
                    DataRow dr=dtExcel.Rows[i];
                    if (dr.IsNull(0) && dr.IsNull(dtExcel.Columns.Count-1))
                    {
                        bool isd = true;
                        for (int j = 1; j < dtExcel.Columns.Count - 1; j++)
                        {
                            if (dr.IsNull(j))
                                continue;
                            else
                            {
                                isd = false;
                                break;
                            }
                        }
                        if (isd)
                            dtExcel.Rows[i].Delete();
                    }
                }
                List<string> listC = new List<string>();
                List<string> tableC = new List<string>();     
                Dictionary<string,string> Det=new Dictionary<string,string>();
                HttpServerUtility server = System.Web.HttpContext.Current.Server;
                //此处XML 为网站根目录下的XML
                string path = server.MapPath("ImportExcel.xml");
                XElement xmldoc = XElement.Load(path);
                string tableName = xmldoc.FirstAttribute.Value;
                if (UtilityClass.IsNullOrEmpty(tableName))
                {
                    erroMsg = "tableName不能为空!";
                    return;
                }
                var qOutColumn = from q in xmldoc.Descendants("OutColumn") select q;
                foreach (var q in qOutColumn)
                {
                    listC.Add(q.Value.Trim());
                }
                var qTableColumn = from q in xmldoc.Descendants("TableColumn") select q;
                foreach (var q in qTableColumn)
                {
                    tableC.Add(q.Value.Trim());
                }
                if (listC.Count != tableC.Count)
                {
                    erroMsg = "OutColumn同TableColumn不是一一对应!";
                    return;
                }
                for(int i = 0; i < listC.Count; i++)
                {
                    if (listC[i] != dtExcel.Columns[i].ColumnName.Trim())
                    {
                        erroMsg = "OutColumn[" + listC[i] + "]与实际导入列名[" + dtExcel.Columns[i].ColumnName.Trim() + "]不一致";
                        return;
                    }
                }
                for (int i = 0; i < listC.Count; i++)
                {
                    Det.Add(listC[i],tableC[i]);
                }

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(_connectionString))
                {
                    for (int i = 0; i < listC.Count; i++)
                    {
                        bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(listC[i], Det[listC[i]]));
                    }
                    bulkCopy.DestinationTableName = tableName;
                    bulkCopy.WriteToServer(dtExcel);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

}
        /// <summary>
        /// 导入检测EXCEL之后的Datatable
        /// EXCEL导入到数据库指定表 需配置XML文件
        /// tableName 即将导入的表名
        /// OutColumn EXCEL中对应的列名 默认第一行为列名
        /// TableColumn 数据库表中对应的列名
        /// CType 导入列的数据类型 以数据库中为准
        /// Clong 导入列的长度
        /// </summary>
        /// <param name="dtExcel">传入Datatable</param>
        /// <param name="erroMsg">错误信息</param>
        /// <param name="isGLNullColumn">是否需要过滤空行</param>
        public static void ExcelToTable(DataTable dtExcel, out string erroMsg,bool isGLNullColumn)
        {
            try
            {
                erroMsg = "";
                //过滤dtExcel 中的空行
                if (isGLNullColumn)
                {
                    for (int i = 0; i < dtExcel.Rows.Count; i++)
                    {
                        DataRow dr = dtExcel.Rows[i];
                        if (dr.IsNull(0) && dr.IsNull(dtExcel.Columns.Count - 1))
                        {
                            bool isd = true;
                            for (int j = 1; j < dtExcel.Columns.Count - 1; j++)
                            {
                                if (dr.IsNull(j))
                                    continue;
                                else
                                {
                                    isd = false;
                                    break;
                                }
                            }
                            if (isd)
                                dtExcel.Rows[i].Delete();
                        }
                    }
                }
                List<string> listC = new List<string>();
                List<string> tableC = new List<string>();
                Dictionary<string, string> Det = new Dictionary<string, string>();
                HttpServerUtility server = System.Web.HttpContext.Current.Server;
                //此处XML 为网站根目录下的XML
                string path = server.MapPath("ImportExcel.xml");
                XElement xmldoc = XElement.Load(path);
                string tableName = xmldoc.FirstAttribute.Value;
                if (UtilityClass.IsNullOrEmpty(tableName))
                {
                    erroMsg = "tableName不能为空!";
                    return;
                }
                var qOutColumn = from q in xmldoc.Descendants("OutColumn") select q;
                foreach (var q in qOutColumn)
                {
                    listC.Add(q.Value.Trim());
                }
                var qTableColumn = from q in xmldoc.Descendants("TableColumn") select q;
                foreach (var q in qTableColumn)
                {
                    tableC.Add(q.Value.Trim());
                }
                if (listC.Count != tableC.Count)
                {
                    erroMsg = "OutColumn同TableColumn不是一一对应!";
                    return;
                }
                for (int i = 0; i < listC.Count; i++)
                {
                    if (listC[i] != dtExcel.Columns[i].ColumnName.Trim())
                    {
                        erroMsg = "OutColumn与实际导入列名不一致";
                        return;
                    }
                }
                for (int i = 0; i < listC.Count; i++)
                {
                    Det.Add(listC[i], tableC[i]);
                }

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(_connectionString))
                {
                    for (int i = 0; i < listC.Count; i++)
                    {
                        bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(listC[i], Det[listC[i]]));
                    }
                    bulkCopy.DestinationTableName = tableName;
                    bulkCopy.WriteToServer(dtExcel);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

}
        /// <summary>
        /// 读取Excel
        /// </summary>
        /// <param name="filePath">EXCEL 路径</param>
        /// <returns></returns>
        public static DataTable GetExcelFileData(string filePath)
        {
            OleDbDataAdapter oleAdp = new OleDbDataAdapter();
            OleDbConnection oleCon = new OleDbConnection();
            string strCon = "Provider=Microsoft.Jet.oleDb.4.0;data source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
            try
            {
                DataTable dt = new DataTable();
                oleCon.ConnectionString = strCon;
                oleCon.Open();
                DataTable table = oleCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                string sheetName = table.Rows[0][2].ToString();
                string sqlStr = "Select * From [" + sheetName + "]";
                oleAdp = new OleDbDataAdapter(sqlStr, oleCon);
                oleAdp.Fill(dt);
                oleCon.Close();
                return dt;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                oleAdp = null;
                oleCon = null;
            }
        }
    }

类库下载请点这里

ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码的更多相关文章

  1. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  2. 笔记-python-lib-requests常用类/方法/属性

    笔记-python-lib-requests常用类/方法/属性 1.      requests模块常用类/方法/属性 在使用中发现对requests模块不够熟悉,写了几个案例后重新整理了一下文档,罗 ...

  3. Java基础学习总结(49)——Excel导入导出工具类

    在项目的pom文件中引入 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifac ...

  4. Excel导入导出帮助类

    /// <summary>    /// Excel导入导出帮助类    /// 记得引入 NPOI    /// 下载地址   http://npoi.codeplex.com/rele ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用 ...

  6. office在繁体系统下 导入导出 功能灰显的解决方法

    当在win7系统使用繁体中文版的office时,或系统是繁体版时,可能会导致office的导入导出功能无法使用 解决方法: 控制面板--区域和语言--格式--中文简体

  7. ASP .Net C# ---Excel导入导出方法

    导入导出的方法以及引用,可以自行创建一个帮助类 using System;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HS ...

  8. asp.net文件夹上传源码

    ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...

  9. 针对ASP.NET页面实时进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)

    在介绍之前,先简单说一说ASP.NET服务端GZIP压缩模块的作用及工作原理,很多人编写网页的时候页面因为使用了大量的JS特效又或者放置很多大型动态广告导致了页面或脚本体积庞大,通常都会使用一些压缩工 ...

随机推荐

  1. SQL 表锁(转)

    其实你可以使用事务处理   比方说在一个字段里面添加一个boolean 的字段当你要处理该字段的时候就 True 哪么别的人都不可以进行操作 如果是False 哪么就可以进行操作--呵可--我是这样的 ...

  2. The Trip PC/UVa IDs: 110103/10137, Popularity: B, Success rate: average Level: 1

    #include<cstdio> #include<iostream> #include<string> #include<algorithm> #in ...

  3. 【转】Rails 3.1错误-Could not find a JavaScript runtime及execjs和therubyracer介绍

    转自:http://rubyer.me/blog/740/ Rails 3.1错误 /gems/execjs-1.1.2/lib/ execjs/runtimes.rb:43:in `autodete ...

  4. Js Pattern - Self Define Function

    This pattern is useful when your function has some initial preparatory work to do andit needs to do ...

  5. Meteor 加入账户系统

    Meteor 加入账户系统 我们给meteor加入一个账户系统 导入包 meteor add ian:accounts-ui-bootstrap-3 meteor add accounts-passw ...

  6. C# Func&lt;&gt;托付

    曾经我们为了可以调用一个方法.必须比照这种方法定义一个对应的delegate. 原先我们定义delegate // 托付声明 -- 定义一个签名: delegate double MathAction ...

  7. 彩票APP将演绎“快鱼吃慢鱼”的发展轨迹

    思科CEO钱伯斯有句名言,叫"快鱼吃慢鱼",他觉得"在Internet经济下,大公司不一定打败小公司,可是快的一定会打败慢的."对此观点,笔者表示部分认同,首先 ...

  8. Unity NGUI 描点控件的位移动画

           要让一个描点的控件动画移动到一个Position,能够用TweenPosition.可是这个仅仅能用在Position是固定的情况下.并且不能依据分辨率适配来进行移动. 以NGUI自带的 ...

  9. php的分表分库类

    <?php include 'config.php'; class Model{ //用户名 protected $user; //密码 protected $pwd; //主机 protect ...

  10. MySQL并发复制系列二:多线程复制

     http://blog.itpub.net/28218939/viewspace-1975822/ 并发复制(Parallel Replication) 系列二: Enhanced Multi-th ...