热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> .Net编程>>正文内容

ASP.NET 之 常用类、方法的超级总结,奉上类库源码下载

发布时间:2010年08月06日点击数: 佚名

实用类:UtilityClass 包含如下方法【完整类库下载

         判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false
         验证手机号是否正确 13,15,18
         验证邮箱
         验证网址
         MD5加密,返回32位的字符串
         DES加密/解密方法
         把字符串的第一个字符变为大写
         判断一个字符串是否是数字
         判断一个字符串是否是时间
         判断一个字符串是否是decimal类型
         生成随机数方法 小于9位
         获取网站配置ConfigurationManager_AppSettings键值
         检查某个文件是否存在于磁盘上,存在--true,不存在--false
         在服务器上创建文件夹
         转换相对路径为物理路径
         两个值的百分比例
         截取字符枚举值
         获取指定长度的字符串
         地址栏传值加密/解密
         获得当前页面客户端的IP
         格式化要显示的内容,主要用于在网页上显示由textarea产生的内容
         判断当前访问是否来自浏览器软件
         判断当前访问是否来自非IE浏览器软件

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

  1. public class DBAccess 
  2.     private static readonly string _connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString(); 
  3.  
  4.     // ExecuteNonQuery 
  5.     public static int ExecuteNonQuery(string commandText) 
  6.     { 
  7.         return Sqlhelper.ExecuteNonQuery(_connectionString, CommandType.Text, commandText); 
  8.     } 
  9.      public static int ExecuteNonQuery(string commandText, params SqlParameter[] cmdParameters) 
  10.      { 
  11.          return Sqlhelper.ExecuteNonQuery(_connectionString, CommandType.Text, commandText, cmdParameters); 
  12.      } 
  13.      /// <summary> 
  14.        /// 执行存储过程 
  15.        /// 
  16. </summary> 
  17. /// <param name="procName"></param> 
  18. /// <param name="cmdParameters"></param> 
  19. /// <returns></returns> 
  20. public static int ExecuteNonQueryProc(string procName,params SqlParameter[] cmdParameters) 
  21.     return Sqlhelper.ExecuteNonQuery(_connectionString, CommandType.StoredProcedure, procName, cmdParameters); 
  22.  
  23.  
  24. // ExecuteDataset 
  25. public static DataSet ExecuteDataset(string commandText) 
  26.     return Sqlhelper.ExecuteDataset(_connectionString, CommandType.Text, commandText); 
  27. public static DataSet ExecuteDataset(string commandText, params SqlParameter[] cmdParameters) 
  28.     return Sqlhelper.ExecuteDataset(_connectionString, CommandType.Text, commandText, cmdParameters); 
  29. /// <summary> 
  30.   /// 执行存储过程 
  31.   /// 
  32. </summary> 
  33. /// <param name="procName"></param> 
  34. /// <param name="cmdParameters"></param> 
  35. /// <returns></returns> 
  36. public static DataSet ExecuteDatasetProc(string procName, params SqlParameter[] cmdParameters) 
  37.     return Sqlhelper.ExecuteDataset(_connectionString, CommandType.StoredProcedure, procName, cmdParameters); 
  38.  
  39. // ExecuteReader 
  40. public static SqlDataReader ExecuteReader(string commandText) 
  41.     return Sqlhelper.ExecuteReader(_connectionString, CommandType.Text, commandText); 
  42. public static SqlDataReader ExecuteReader(string commandText, params SqlParameter[] cmdParameters) 
  43.     return Sqlhelper.ExecuteReader(_connectionString, CommandType.Text, commandText, cmdParameters); 
  44. /// <summary> 
  45.   /// 执行存储过程 
  46.   /// 
  47. </summary> 
  48. /// <param name="procName"></param> 
  49. /// <param name="cmdParameters"></param> 
  50. /// <returns></returns> 
  51. public static SqlDataReader ExecuteReaderProc(string procName, params SqlParameter[] cmdParameters) 
  52.     return Sqlhelper.ExecuteReader(_connectionString, CommandType.StoredProcedure, procName, cmdParameters); 
  53.  
  54. // ExecuteScalar 
  55. public static object ExecuteScalar(string commandText) 
  56.     return Sqlhelper.ExecuteScalar(_connectionString, CommandType.Text, commandText); 
  57. public static object ExecuteScalar(string commandText, params SqlParameter[] cmdParameters) 
  58.     return Sqlhelper.ExecuteScalar(_connectionString, CommandType.Text, commandText, cmdParameters); 
  59.  /// <summary> 
  60.    /// 执行存储过程 
  61.    /// 
  62. </summary> 
  63.     /// <param name="procName"></param> 
  64.     /// <param name="cmdParameters"></param> 
  65.     /// <returns></returns> 
  66.     public static object ExecuteScalarProc(string procName, params SqlParameter[] cmdParameters) 
  67.     { 
  68.         return Sqlhelper.ExecuteScalar(_connectionString, CommandType.StoredProcedure, procName, cmdParameters); 
  69.     } 

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

  1. /* 
  2. 添加引用 System.Runtime.Serialization 
  3. 添加引用 System.ServiceModel.Web 
  4. */ 
  5. public static class JsonHelper 
  6. /// <summary> 
  7.   /// 格式化成Json字符串 
  8.   /// 
  9. </summary> 
  10. /// <param name="obj">需要格式化的对象</param> 
  11. /// <returns>Json字符串</returns> 
  12. public static string ToJson(this object obj) 
  13. // 首先,当然是JSON序列化 
  14. DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); 
  15.  
  16. // 定义一个stream用来存发序列化之后的内容 
  17. Stream stream = new MemoryStream(); 
  18. serializer.WriteObject(stream, obj); 
  19.  
  20. // 从头到尾将stream读取成一个字符串形式的数据,并且返回 
  21. stream.Position = 0; 
  22. StreamReader streamReader = new StreamReader(stream); 
  23. return streamReader.ReadToEnd(); 
  24. //DataSetToJson 
  25. public static string ToJSON(DataSet dataSet, IDictionary<string, IDictionary=""<stringstring=""
  26.   > details) 
  27.   { 
  28.   string json = string.Empty; 
  29.   if (dataSet != null && dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0) 
  30.   { 
  31.   int i = 0, j = 0; 
  32.   json += "["
  33.   foreach (DataRow row in dataSet.Tables[0].Rows) 
  34.   { 
  35.   if (i == 0) { } else { json += ","; } 
  36.   j = 0; 
  37.   json += "{"
  38.   foreach (DataColumn column in dataSet.Tables[0].Columns) 
  39.   { 
  40.   if (j == 0) { } else { json += ","; } 
  41.  
  42.   if (details != null && details.ContainsKey(column.ColumnName)) 
  43.   { 
  44.   IDictionary<stringstring=""
  45.     dict = details[column.ColumnName] as IDictionary<stringstring="">; 
  46.  
  47.                         if (dict != null && dict.ContainsKey(row[column].ToString())) 
  48.                             json += string.Format("'{0}':'{1}'", column.ColumnName.ToLower(), dict[row[column].ToString()]); 
  49.                         else 
  50.                             json += string.Format("'{0}':'{1}'", column.ColumnName.ToLower(), row[column].ToString()); 
  51.                     } 
  52.                     else 
  53.                         json += string.Format("'{0}':'{1}'", column.ColumnName.ToLower(), row[column].ToString()); 
  54.  
  55.                     j++; 
  56.                 } 
  57.                 json += "}"
  58.                 i++; 
  59.             } 
  60.             json += "]"
  61.         } 
  62.  
  63.         //json = "{\"result\":\"" + json + "\"}"; 
  64.         return json; 
  65.     } 

网页Messagebox: 

  1. public class MessageBox : System.Web.UI.Page 
  2. public MessageBox() 
  3. // 
  4. // TODO: 在此处添加构造函数逻辑 
  5. // 
  6. public static void Show(System.Web.UI.Page page, string msg) 
  7.  
  8. page.ClientScript.RegisterStartupScript(page.GetType(), "message""<script language='javascript' defer=''>alert('" + msg.ToString() + "');</script>"); 
  9.  
  10.  
  11. public static void ShowAndRedirect(System.Web.UI.Page page, string msg, string url) 
  12. StringBuilder Builder = new StringBuilder(); 
  13.  
  14. Builder.Append("<script language='javascript' defer=''
  15.   "); 
  16.   Builder.AppendFormat("alert('{0}');", msg); 
  17.   Builder.AppendFormat("self.location.href='{0}'", url); 
  18.   Builder.Append(" 
  19. </script>"); 
  20. page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString()); 
  21.  
  22. /// <summary> 
  23.   /// 控件点击 消息确认提示框 
  24.   /// 
  25. </summary> 
  26. /// <param name="page">当前页面指针,一般为this</param> 
  27. /// <param name="msg">提示信息</param> 
  28. public static void ShowConfirm(System.Web.UI.WebControls.WebControl Control, string msg) 
  29. //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}"); 
  30. Control.Attributes.Add("onclick""return confirm('" + msg + "');"); 
  31. /// <summary> 
  32.   /// 信息提示 
  33.   /// 
  34. </summary> 
  35. /// <param name="mess"></param> 
  36. //public virtual void Alert(string mess) 
  37. //{ 
  38. //    ClientScript.RegisterStartupScript(this.GetType(), "Alert", "<script language = "javascript">alert(\"提示:" + mess.Replace("\r\n", "") + "\")</script>"); 
  39. //} 

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

  1. public class ExcelM:Page 
  2. /// <summary> 
  3.   /// 导出Excel Datatable版本 
  4.   /// 
  5. </summary> 
  6. /// <param name="dt">导出的Datatable</param> 
  7. /// <param name="ExcelName">导出EXCEL的名称 不需要要带有扩展名_xls</param> 
  8. public static void ExportExcelDT(DataTable dt, string Title) 
  9. HttpResponse resp = System.Web.HttpContext.Current.Response; 
  10. string ExcelName = Title + DateTime.Now.ToString("yyyyMMddHHmmss"); 
  11. resp.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); 
  12. resp.AppendHeader("Content-Disposition""attachment;filename=" + ExcelName + ".xls"); 
  13. string colHeaders = "", ls_item = ""
  14. DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的 
  15. int i = 0; 
  16. int cl = dt.Columns.Count; 
  17. //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符 
  18. resp.Write("<html> 
  19.   <head> 
  20.     <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> 
  21.   </head> 
  22.   <body> 
  23.     <table border="1"
  24.       <tr style=\"background-color:#000088; color:White;border: Gray 1px solid;text-align:center\"
  25.         "); 
  26.         for (i = 0; i < cl; i++) 
  27.     colHeaders += "<th>" + dt.Columns[i].Caption.ToString() + "</th>"
  28.         } 
  29.         resp.Write(colHeaders + " 
  30.       </tr>"); 
  31.       //向HTTP输出流中写入取得的数据信息 
  32.       //逐行处理数据 
  33.       foreach (DataRow row in myRow) 
  34.       { 
  35.       //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 
  36.       ls_item = "<tr bgcolor=#"ABCDC1"> 
  37.         "; 
  38.         for (i = 0; i < cl; i++) 
  39.     if (i == (cl - 1))//最后一列,加n 
  40.     { 
  41.         ls_item += "<td>" + row[i].ToString() + "</td> 
  42.       </tr>"; 
  43.       } 
  44.       else 
  45.       { 
  46.       ls_item += "<td>" + row[i].ToString() + "</td>"
  47.       } 
  48.       } 
  49.       resp.Write(ls_item); 
  50.       } 
  51.       resp.Write(" 
  52.     </table> 
  53.   </body> 
  54. </html>"); 
  55. resp.End(); 
  56. public enum eControl { GridView,Repeater} 
  57. /// <summary> 
  58.   /// 控件导出EXCEL 
  59.   /// 
  60. </summary> 
  61. /// <param name="dataControl">控件名称</param> 
  62. /// <param name="dt">要导出的Datatable数据</param> 
  63. /// <param name="title">名称</param> 
  64. /// <param name="Control">控件类型 GridView or Repeater</param> 
  65. public static void ExportExcelDataControl(object dataControl, ref DataTable dt, string title, eControl Control) 
  66. HttpResponse Response = System.Web.HttpContext.Current.Response; 
  67. StringWriter objStringWriter = new StringWriter(); 
  68. HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter); 
  69.  
  70. if (Control == eControl.GridView) 
  71. GridView gvList = (GridView)dataControl; 
  72. gvList.DataSource = dt; 
  73. gvList.DataBind(); 
  74. gvList.RenderControl(objHtmlTextWriter); 
  75. if (Control == eControl.Repeater) 
  76. Repeater rpList = (Repeater)dataControl; 
  77. rpList.DataSource = dt; 
  78. rpList.DataBind(); 
  79. rpList.RenderControl(objHtmlTextWriter); 
  80. string style = @"<html> 
  81.   <head> 
  82.     <meta http-equiv=""Content-Type="""" content=""text=""/html; charset=utf-8"" /><style> .text { mso-number-format:\@; } </style> 
  83.   </head> 
  84.   <body> 
  85.     "; 
  86.     string filename = title + DateTime.Now.ToString("yyyyMMddHHmmss"); 
  87.     Response.Clear(); 
  88.     Response.Buffer = true
  89.     Response.AppendHeader("Content-Disposition""attachment;filename=" + filename + ".xls"); 
  90.     Response.ContentType = "application/ms-excel"
  91.     Response.Write(style); 
  92.     Response.Write(objStringWriter.ToString()); 
  93.     Response.Write(" 
  94.   </body> 
  95. </html>"); 
  96. Response.End(); 
  97. /// <summary> 
  98.   /// Gridview重载函数 
  99.   /// 
  100. </summary> 
  101. /// <param name="control"></param> 
  102. public override void VerifyRenderingInServerForm(System.Web.UI.Control control) { } 
  103. private static readonly string _connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString(); 
  104. /// <summary> 
  105.   /// EXCEL导入到数据库指定表 需配置XML文件 
  106.   /// tableName 即将导入的表名 
  107.   /// OutColumn EXCEL中对应的列名 默认第一行为列名 
  108.   /// TableColumn 数据库表中对应的列名 
  109.   /// CType 导入列的数据类型 以数据库中为准 
  110.   /// Clong 导入列的长度 
  111.   /// 
  112. </summary> 
  113. /// <param name="filePath">上传EXCEL的路径</param> 
  114. /// <param name="erroMsg">错误信息</param> 
  115. public static void ExcelToTable(string filePath,out string erroMsg) 
  116. try 
  117. erroMsg = ""
  118. DataTable dtExcel = GetExcelFileData(filePath); 
  119. //过滤dtExcel 中的空行 
  120. for (int i = 0; i < dtExcel.Rows.Count; i++) 
  121.         { 
  122.             DataRow dr=dtExcel.Rows[i]; 
  123.             if (dr.IsNull(0) && dr.IsNull(dtExcel.Columns.Count-1)) 
  124. bool isd = true
  125. for (int j = 1; j < dtExcel.Columns.Count - 1; j++) 
  126.                 { 
  127.                     if (dr.IsNull(j)) 
  128.                         continue
  129.                     else 
  130.                     { 
  131.                         isd = false
  132.                         break
  133.                     } 
  134.                 } 
  135.                 if (isd) 
  136.                     dtExcel.Rows[i].Delete(); 
  137.             } 
  138.         } 
  139.         List<string
  140.   listC = new List<string
  141.     (); 
  142.     130                 List<string
  143.       tableC = new List<string
  144.         (); 
  145.         131                 Dictionary<string,string
  146.           Det=new Dictionary<string,string
  147.             (); 
  148.             HttpServerUtility server = System.Web.HttpContext.Current.Server; 
  149.             //此处XML 为网站根目录下的XML 
  150.             string path = server.MapPath("ImportExcel.xml"); 
  151.             XElement xmldoc = XElement.Load(path); 
  152.             string tableName = xmldoc.FirstAttribute.Value; 
  153.             if (UtilityClass.IsNullOrEmpty(tableName)) 
  154.             { 
  155.             erroMsg = "tableName不能为空!"
  156.             return
  157.             } 
  158.             var qOutColumn = from q in xmldoc.Descendants("OutColumn") select q; 
  159.             foreach (var q in qOutColumn) 
  160.             { 
  161.             listC.Add(q.Value.Trim()); 
  162.             } 
  163.             var qTableColumn = from q in xmldoc.Descendants("TableColumn") select q; 
  164.             foreach (var q in qTableColumn) 
  165.             { 
  166.             tableC.Add(q.Value.Trim()); 
  167.             } 
  168.             if (listC.Count != tableC.Count) 
  169.             { 
  170.             erroMsg = "OutColumn同TableColumn不是一一对应!"
  171.             return
  172.             } 
  173.             for(int i = 0; i < listC.Count; i++) 
  174.          { 
  175.              if (listC[i] != dtExcel.Columns[i].ColumnName.Trim()) 
  176.              { 
  177.                  erroMsg = "OutColumn[" + listC[i] + "]与实际导入列名[" + dtExcel.Columns[i].ColumnName.Trim() + "]不一致"
  178.                  return
  179.              } 
  180.          } 
  181.          for (int i = 0; i < listC.Count; i++) 
  182.          { 
  183.              Det.Add(listC[i],tableC[i]); 
  184.          } 
  185.  
  186.          using (SqlBulkCopy bulkCopy = new SqlBulkCopy(_connectionString)) 
  187.          { 
  188.              for (int i = 0; i < listC.Count; i++) 
  189.              { 
  190.                  bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(listC[i], Det[listC[i]])); 
  191.              } 
  192.              bulkCopy.DestinationTableName = tableName; 
  193.              bulkCopy.WriteToServer(dtExcel); 
  194.          } 
  195.      } 
  196.      catch (Exception ex) 
  197.      { 
  198.          throw ex; 
  199.      } 
  200.  
  201.  } 
  202.  /// <summary> 
  203.               /// 导入检测EXCEL之后的Datatable 
  204.               /// EXCEL导入到数据库指定表 需配置XML文件 
  205.               /// tableName 即将导入的表名 
  206.               /// OutColumn EXCEL中对应的列名 默认第一行为列名 
  207.               /// TableColumn 数据库表中对应的列名 
  208.               /// CType 导入列的数据类型 以数据库中为准 
  209.               /// Clong 导入列的长度 
  210.               /// 
  211.             </summary> 
  212.             /// <param name="dtExcel">传入Datatable</param> 
  213.             /// <param name="erroMsg">错误信息</param> 
  214.             /// <param name="isGLNullColumn">是否需要过滤空行</param> 
  215.             public static void ExcelToTable(DataTable dtExcel, out string erroMsg,bool isGLNullColumn) 
  216.             { 
  217.             try 
  218.             { 
  219.             erroMsg = ""
  220.             //过滤dtExcel 中的空行 
  221.             if (isGLNullColumn) 
  222.             { 
  223.             for (int i = 0; i < dtExcel.Rows.Count; i++) 
  224.            { 
  225.                DataRow dr = dtExcel.Rows[i]; 
  226.                if (dr.IsNull(0) && dr.IsNull(dtExcel.Columns.Count - 1)) 
  227.             { 
  228.             bool isd = true
  229.             for (int j = 1; j < dtExcel.Columns.Count - 1; j++) 
  230.                            { 
  231.                                if (dr.IsNull(j)) 
  232.                                    continue
  233.                                else 
  234.                                { 
  235.                                    isd = false
  236.                                    break
  237.                                } 
  238.                            } 
  239.                            if (isd) 
  240.                                dtExcel.Rows[i].Delete(); 
  241.                        } 
  242.                    } 
  243.                } 
  244.                List<string
  245.               listC = new List<string
  246.                 (); 
  247.                 List<string
  248.                   tableC = new List<string
  249.                     (); 
  250.                     Dictionary<stringstring=""
  251.                       Det = new Dictionary<stringstring=""
  252.                         (); 
  253.                         HttpServerUtility server = System.Web.HttpContext.Current.Server; 
  254.                         //此处XML 为网站根目录下的XML 
  255.                         string path = server.MapPath("ImportExcel.xml"); 
  256.                         XElement xmldoc = XElement.Load(path); 
  257.                         string tableName = xmldoc.FirstAttribute.Value; 
  258.                         if (UtilityClass.IsNullOrEmpty(tableName)) 
  259.                         { 
  260.                         erroMsg = "tableName不能为空!"
  261.                         return
  262.                         } 
  263.                         var qOutColumn = from q in xmldoc.Descendants("OutColumn") select q; 
  264.                         foreach (var q in qOutColumn) 
  265.                         { 
  266.                         listC.Add(q.Value.Trim()); 
  267.                         } 
  268.                         var qTableColumn = from q in xmldoc.Descendants("TableColumn") select q; 
  269.                         foreach (var q in qTableColumn) 
  270.                         { 
  271.                         tableC.Add(q.Value.Trim()); 
  272.                         } 
  273.                         if (listC.Count != tableC.Count) 
  274.                         { 
  275.                         erroMsg = "OutColumn同TableColumn不是一一对应!"
  276.                         return
  277.                         } 
  278.                         for (int i = 0; i < listC.Count; i++) 
  279.                  { 
  280.                      if (listC[i] != dtExcel.Columns[i].ColumnName.Trim()) 
  281.                      { 
  282.                          erroMsg = "OutColumn与实际导入列名不一致"
  283.                          return
  284.                      } 
  285.                  } 
  286.                  for (int i = 0; i < listC.Count; i++) 
  287.                  { 
  288.                      Det.Add(listC[i], tableC[i]); 
  289.                  } 
  290.   
  291.                  using (SqlBulkCopy bulkCopy = new SqlBulkCopy(_connectionString)) 
  292.                  { 
  293.                      for (int i = 0; i < listC.Count; i++) 
  294.                      { 
  295.                          bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(listC[i], Det[listC[i]])); 
  296.                      } 
  297.                      bulkCopy.DestinationTableName = tableName; 
  298.                      bulkCopy.WriteToServer(dtExcel); 
  299.                  } 
  300.              } 
  301.              catch (Exception ex) 
  302.              { 
  303.                  throw ex; 
  304.              } 
  305.   
  306.          } 
  307.          /// <summary> 
  308.                           /// 读取Excel 
  309.                           /// 
  310.                         </summary> 
  311.                         /// <param name="filePath">EXCEL 路径</param> 
  312.                         /// <returns></returns> 
  313.                         public static DataTable GetExcelFileData(string filePath) 
  314.                         { 
  315.                         OleDbDataAdapter oleAdp = new OleDbDataAdapter(); 
  316.                         OleDbConnection oleCon = new OleDbConnection(); 
  317.                         string strCon = "Provider=Microsoft.Jet.oleDb.4.0;data source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
  318.                         try 
  319.                         { 
  320.                         DataTable dt = new DataTable(); 
  321.                         oleCon.ConnectionString = strCon; 
  322.                         oleCon.Open(); 
  323.                         DataTable table = oleCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
  324.                         string sheetName = table.Rows[0][2].ToString(); 
  325.                         string sqlStr = "Select * From [" + sheetName + "]"
  326.                         oleAdp = new OleDbDataAdapter(sqlStr, oleCon); 
  327.                         oleAdp.Fill(dt); 
  328.                         oleCon.Close(); 
  329.                         return dt; 
  330.                         } 
  331.                         catch (Exception ex) 
  332.                         { 
  333.                         throw ex; 
  334.                         } 
  335.                         finally 
  336.                         { 
  337.                         oleAdp = null
  338.                         oleCon = null
  339.                         } 
  340.                         } 
  341.                         } 

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作