热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于.net生成静态页面的方法总结

这几天在做国家教育平台阳光工程,由于考虑到将来的用户群比较多,所以我们考虑使用.net生成静态页面的方法来减少数据与数据库的访问量,虽然以前也写过一些静态的页面,但是感觉没有将来的比较复杂,所以搜

 

 这几天在做国家教育平台阳光工程,由于考虑到将来的用户群比较多,所以我们考虑使用.net生成静态页面的方法来减少数据与数据库的访问量,虽然以前也写过一些静态的页面,但是感觉没有将来的比较复杂,所以搜索了一下网络,再结合自己以前的一些经验,总结出以下几步思想:

1)做一个比较好的模板temp1.html,并在模板中写好题目,内容,作者 以及发布日期的标记,如果还有其他列表的话也要写好其他列表的标记,如 题目可以用标记:$Title$,内容可以用$cont$,发布日期$PubDate,最新发布新闻列表$DtNewest$;

2)设计数据库,可以设置两张表,一张表存放模板,一张用于存放发布新闻的内容

如 模板表:  TempTable   : ID ,classid,TempPath(存放模板的路径);

    新闻表:   NesTable:   ID,ClassID,title,cont,Filepath(发布后存放静态页面的路径),pubdate,author,status;

 

3)添加新闻时,现在记录添加到新闻表中,然后再根据栏目的ID找到该栏目的模板,把模板中的内容读取到一个字符串变量中,并用新闻表中的字段替换模板中的相应标记,然后调用c#中的读写文件的类,写到一个静态文件中如:News.HTml,写成功后再更新数据中静态文件路径filepath;

 

这样一个静态文件就写好了

 

另外本人也从网络上搜集了一些资料,供大家参考(关于新闻内容分页的情况下次叙述)

一、类似的模板

 模板页Text.html代码






$title$


 $author$


$content$



 

二、C#生成静态页类代码|支持列表生成代码

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using zj123.Model;
using System.IO;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections;
namespace WebUI.html
{
    public class EasyHtml
    {
        public bool MakeHtml(string artid)
        {
           
            bool succ = false;
            int len = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["titlelength"]) ?? "20");
            //读取数据
            string sql = string.Format("select a.*,b.ClassName,b.Depth,b.OrderBy,b.isTop,b.isList,b.IsLinks,b.Links,b.PicURL,b.ParentID,b.TemplateoutId,b.TemplateinNeiId,b.TemplateinListId from article a,zone b  where a.classid=b.classid and a.Status=3 and a.articleid={0}", artid);
            DataTable dt = DbHelperOleDb.Query(sql).Tables[0];
            if(dt.Rows.Count>0)
            {
            //外模板
                string waitemp = "";
                DataTable waidt  =DbHelperOleDb.Query(string.Format("select * from template where TemplateID={0}",Convert.ToString(dt.Rows[0]["TemplateoutId"]).Trim())).Tables[0];
                if (waidt.Rows.Count > 0)
                {
                    waitemp = Convert.ToString(waidt.Rows[0]["TemplateContent"]);
                }
            //内模板
                string neitemp = "";
                DataTable neidt = DbHelperOleDb.Query(string.Format("select * from template where TemplateID={0}", Convert.ToString(dt.Rows[0]["TemplateinNeiId"]).Trim())).Tables[0];
                if (neidt.Rows.Count > 0)
                {
                    neitemp = Convert.ToString(neidt.Rows[0]["TemplateContent"]);
                }
                //替换模板
                waitemp = waitemp.Replace("$intemplate$", neitemp);
                //替换类型
                string tempclassname = classes.Common.GetP(Convert.ToString(dt.Rows[0]["classid"]));
                waitemp = waitemp.Replace("$ClassName$", tempclassname);
            #region "文章列表"
  
                //最新的文章
                System.Text.StringBuilder sbneartitle = new System.Text.StringBuilder("

");
                DataTable nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 order by updatetime desc").Tables[0];
                for (int i = 0; i                 {
                    sbneartitle.AppendFormat("
  • {1}
  • ",Convert.ToString(nearTitledt.Rows[i]["HtmlPath"]),Convert.ToString(nearTitledt.Rows[i]["Title"]));
                    }
                    sbneartitle.Append("
    ");
                    waitemp = waitemp.Replace("$NearTitle$", sbneartitle.ToString());
                    sbneartitle.Remove(0,sbneartitle.ToString().Length);
                    if (waitemp.Contains("$OnTopTitle$"))
                    {
                        sbneartitle.Append("
    ");

                        //固定
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and OnTop=1 order by updatetime desc").Tables[0];
                        for (int i = 0; i                     {
                        sbneartitle.AppendFormat("

  • {1}
  • ", Convert.ToString(nearTitledt.Rows[i]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[i]["Title"]));
                        }
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        sbneartitle.Append("
    ");
                        waitemp = waitemp.Replace("$OnTopTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                    }
                 
                    if (waitemp.Contains("$HitsTitle$"))
                    {
                        sbneartitle.Append("
    ");
                        //热门
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and Hits>1000 order by Hits desc,updatetime desc").Tables[0];
                        for (int i = 0; i                     {
                        sbneartitle.AppendFormat("
  • {1}
  • ", Convert.ToString(nearTitledt.Rows[i]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[i]["Title"]));
                        }
                        sbneartitle.Append("
    ");


                        waitemp = waitemp.Replace("$HitsTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                    }
            
                    if (waitemp.Contains("$Elite$"))
                    {
                        sbneartitle.Append("

    ");
                        //推荐Elite
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and Elite=1 order by updatetime desc").Tables[0];
                        for (int i = 0; i                     {
                        sbneartitle.AppendFormat("
  • {1}
  • ", Convert.ToString(nearTitledt.Rows[i]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[i]["Title"]));
                        }

                        sbneartitle.Append("

    ");
                        waitemp = waitemp.Replace("$Elite$", sbneartitle.ToString());

                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                    }

                
               
                    //相关Classid
                    if (waitemp.Contains("$ClassTitle$"))
                    {
                        sbneartitle.Append("

    ");
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and classid=" + Convert.ToString(dt.Rows[0]["classid"]) + " order by updatetime desc").Tables[0];
                        for (int curr = 0; curr                     {
                            sbneartitle.AppendFormat("
  • {1}
  • ", Convert.ToString(nearTitledt.Rows[curr]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[curr]["Title"]));
                        }

                        sbneartitle.Append("

    ");
                        waitemp = waitemp.Replace("$ClassTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                    }

                    //相关Classid
                    if (waitemp.Contains("$LikeTitle$"))
                    {
                        sbneartitle.Append("

    ");
                        DataTable dtlike = zj123.Model.Article.GetLike(artid);
                        for (int likei = 0; likei                     {
                            sbneartitle.AppendFormat("
  • {1}
  • ", Convert.ToString(dtlike.Rows[likei]["HtmlPath"]), Convert.ToString(dtlike.Rows[likei]["Title"]));
                        }
                        sbneartitle.Append("
    ");
                        waitemp = waitemp.Replace("$LikeTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                    }

                        /////////////////////////////////////////////////////////////////////////////////////////////
                #endregion
                        //替换最新的数据
                        for (int j = 0; j                     {
                            if (dt.Columns[j].ColumnName.Trim() == "Title")
                            {
                                string temp1 = "";
                                string temp2 = "";
                                string typefOnt= Convert.ToString(dt.Rows[0]["TitleFontType"]);
                                if (typefOnt== "0")
                                {
                                    temp1 = "";
                                    temp2 = "
    ";
                                }
                                else if (typefOnt== "1")
                                {
                                    temp1 = "";
                                    temp2 = "
    ";
                                }
                                else if (typefOnt== "2")
                                {
                                    temp1 = "";
                                    temp2 = "
    ";
                                }
                                else
                                {

                                }
                                //System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex();
                                //Match match = Regex.Matches();
                                //reg.Replace(waitemp, Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]), 1, waitemp.IndexOf("$Title$"));
                                string temp11 = waitemp.Substring(0, waitemp.IndexOf("$Title$") + 8);
                                string temp22 = waitemp.Substring(waitemp.IndexOf("$Title$") + 8);
                                temp11 = temp11.Replace("$Title$", Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()])+"---"+Regex.Replace(Regex.Replace(tempclassname,"<[^>]*>",""),"[>|<]*",""));
                                temp22 = temp22.Replace("$Title$", "" + temp1 + Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]) + temp2 + "");
                                waitemp = temp11 + temp22;
                                temp11 = null;
                                temp22 = null;
                                //waitemp = waitemp.Replace("$" + dt.Columns[j].ColumnName.Trim() + "$", "" +temp1+ Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]) +temp2+ "");
                            }
                            else if (dt.Columns[j].ColumnName.Trim().ToLower() == "hits")
                            {
                                waitemp = waitemp.Replace("$" + dt.Columns[j].ColumnName.Trim() + "$", Convert.ToInt16(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]) > 1000 ? ("热门") : (""));
                            }
                            else if (dt.Columns[j].ColumnName.Trim().ToLower() == "ontop")
                            {
                                waitemp = waitemp.Replace("$" + dt.Columns[j].ColumnName.Trim() + "$", Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]).ToLower() == "true" ? ("置顶") : (""));
                            }
                            else if (dt.Columns[j].ColumnName.Trim().ToLower() == "elite")
                            {
                                waitemp = waitemp.Replace("$" + dt.Columns[j].ColumnName.Trim() + "$", Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]).ToLower().ToString() == "true" ? ("推荐") : (""));
                            }
                            else
                            {
                                waitemp = waitemp.Replace("$" + dt.Columns[j].ColumnName.Trim() + "$", Convert.ToString(dt.Rows[0][dt.Columns[j].ColumnName.Trim()]));
                            }

                        }
                    //替换链表信息
                    //$typejs$
                    waitemp = waitemp.Replace("$typejs$", Convert.ToString(dt.Rows[0]["ClassID"]));
                    //$numjs$
                    waitemp = waitemp.Replace("$numjs$", "10");
                    //$setjs$
                    waitemp = waitemp.Replace("$setjs$","");
                   
                    ///js脚本信息


                   //根据路径生成页面
                    //路径 检查
                    string path = System.Web.HttpContext.Current.Request.PhysicalApplicationPath.Trim()  + Convert.ToString(dt.Rows[0]["Links"]) + "//" + Convert.ToDateTime(dt.Rows[0]["CreateTime"]).ToString("yyyy-MM");
                    if(!Directory.Exists(path))
                      Directory.CreateDirectory(path);
                  string filename = "//"+ Convert.ToString(dt.Rows[0]["ArticleID"]) + ".html";
                    using(StreamWriter sw = new StreamWriter(path+"//"+filename,false,System.Text.Encoding.GetEncoding("gb2312")))
                    {
                        sw.Write(waitemp);
                        sw.Flush();
                        sw.Close();
                    }
                    //修改文章转台
                    try
                    {
                        if (artid == null)
                            return false;
                        int j = int.Parse(artid);
                    }
                    catch
                    {
                        return false;
                    }

                    string sql1 = string.Format("update article set iscreate=1,htmlpath='{0}' where articleid={1}", "/" + Convert.ToString(dt.Rows[0]["Links"]).Replace("////", "/") + "/" + Convert.ToDateTime(dt.Rows[0]["CreateTime"]).ToString("yyyy-MM") + filename, artid);
                    DbHelperOleDb.ExecuteSql(sql1);
                   
                }
                else
                {
                    return false;
                }
          

                return succ;
            }
            ///


            /// 生成列表页
            ///

            ///
            ///
            public bool MakeList(string classid)
            {
                int len = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["titlelength"]) ?? "20");
                bool succ = false;
                try
             {        
              int i = int.Parse(classid);

             }
             catch
             {
              
           return false;
             }
                DataTable dt = DbHelperOleDb.Query(string.Format("select a.*,b.ClassName,b.Depth,b.OrderBy,b.isTop,b.isList,b.IsLinks,b.Links,b.PicURL,b.ParentID,b.TemplateoutlistId,b.TemplateoutId,b.TemplateinNeiId,b.TemplateinListId,b.keywords,b.[description] from article a,zone b  where a.classid=b.classid and  iscreate=1 and a.Status=3 and a.classid={0} order by a.UpdateTime desc,OnTop desc,Elite desc,Hits desc", classid)).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    string classpath = HttpContext.Current.Request.PhysicalApplicationPath + @"/" + Convert.ToString(dt.Rows[0]["Links"]).Trim();
                    //读取外模板信息
                    string templatewai = "";
                    DataTable templatewaidt = DbHelperOleDb.Query(string.Format("select * from template where TemplateID={0}", Convert.ToString(dt.Rows[0]["TemplateoutlistId"]))).Tables[0];
                    if (templatewaidt.Rows.Count > 0)
                    {
                        templatewai = Convert.ToString(templatewaidt.Rows[0]["TemplateContent"]);
                    }
                    //根据类型替换标题
                    string tempclassname = classes.Common.GetP(classid);
                    templatewai = templatewai.Replace("$Title$", Convert.ToString(dt.Rows[0]["ClassName"]).Trim() +"--"+Regex.Replace(Regex.Replace(tempclassname,"<[^>]*>",""),"[<|>]*",""));
                    templatewai = templatewai.Replace("$ClassTitleTop$", Convert.ToString(dt.Rows[0]["ClassName"]).Trim());
                    templatewai = templatewai.Replace("$ClassName$", tempclassname);
                    templatewai = templatewai.Replace("$Keyword$", Convert.ToString(dt.Rows[0]["Keywords"]).Trim());
                    templatewai = templatewai.Replace("$Description$", Convert.ToString(dt.Rows[0]["Description"]).Trim());

                    int zOng= dt.Rows.Count;
                    int size = 10;
                    try
                    {
                        size = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["pagesize"]);
                    }
                    catch
                    {

                        size = 10;
                    }
                    int pagecount = zong % size == 0 ? (zong / 10) : (zong / 10 + 1);
                    string listcOntent= "";
                    DataTable dtlist = DbHelperOleDb.Query(string.Format("select * from template where TemplateID={0}", Convert.ToString(dt.Rows[0]["TemplateinListId"]))).Tables[0];
                    if (dtlist.Rows.Count > 0)
                    {
                        listcOntent= Convert.ToString(dtlist.Rows[0]["TemplateContent"]);
                    }
                    //// Match mat = Regex.Match(this.rtbconten.Text.Trim(), "(?.*)", RegexOptions.Multiline | RegexOptions.IgnoreCase);
                    //// MessageBox.Show(mat.Groups["content"].Value);
                    ////(?.*)
                    ////
                    Match mat = Regex.Match(listcontent, "(?.*)(?.*)(?.*)(?.*)",RegexOptions.IgnoreCase|RegexOptions.Multiline);
                    string head = Convert.ToString(mat.Groups["head"]);
                    string body = Convert.ToString(mat.Groups["body"]);
                    string page = Convert.ToString(mat.Groups["page"]);
                    string bottom = Convert.ToString(mat.Groups["bottom"]);
                    //循环生成分页
                    for (int i = 0; i                 {
                        //System.Text.StringBuilder sbneilist = new System.Text.StringBuilder("

                        System.Text.StringBuilder sbneilist = new System.Text.StringBuilder(head);


                        int l = 0;
                        for (int j = (i * size                     {
                            //sbneilist.Append("

    ");

                        }

                        //sbneilist.Append("

    ");
                        sbneilist.Append(page.Replace("¥pages¥", classes.Common.GetPage(i + 1, size, zong)));
                        // sbneilist.Append("
    ");
                            //string temp = listcontent;
                            string temp = body;
                            for (int k = 0; k                         {
                              
                                temp = temp.Replace("$" + dt.Columns[k].ColumnName.Trim() + "$", Convert.ToString(dt.Rows[j][dt.Columns[k].ColumnName.Trim()]));
                            }
                            if ((++l) % 5 == 0)
                            {
                                sbneilist.Append(temp).Append("
    ");
                            }
                            else
                            {
                                sbneilist.Append(temp);
                            }
                          
                            //sbneilist.Append("
    ");
                        sbneilist.Append(bottom);

                        #region "文章列表"

                        //最新的文章
                        System.Text.StringBuilder sbneartitle = new System.Text.StringBuilder("");
                        DataTable nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 order by updatetime desc").Tables[0];
                        for (int curr = 0; curr                     {
                            sbneartitle.AppendFormat("

  • ·{1}
  • ", Convert.ToString(nearTitledt.Rows[curr]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[curr]["Title"]));
                        }
                        sbneartitle.Append("");
                        templatewai = templatewai.Replace("$NearTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        sbneartitle.Append("");

                        //固定
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and OnTop=1 order by updatetime desc").Tables[0];
                        for (int curr = 0; curr                     {
                            sbneartitle.AppendFormat("

  • ·{1}
  • ", Convert.ToString(nearTitledt.Rows[curr]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[curr]["Title"]));
                        }
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        sbneartitle.Append("");
                        templatewai = templatewai.Replace("$OnTopTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        sbneartitle.Append("");
                        //热门
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and Hits>1000 order by Hits desc,updatetime desc").Tables[0];
                        for (int curr = 0; curr                     {
                            sbneartitle.AppendFormat("
  • ·{1}
  • ", Convert.ToString(nearTitledt.Rows[curr]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[curr]["Title"]));
                        }
                        sbneartitle.Append("");


                        templatewai = templatewai.Replace("$HitsTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        sbneartitle.Append("");
                        //推荐Elite
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and Elite=1 order by updatetime desc").Tables[0];
                        for (int curr = 0; curr                     {
                            sbneartitle.AppendFormat("

  • ·{1}
  • ", Convert.ToString(nearTitledt.Rows[curr]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[curr]["Title"]));
                        }
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        sbneartitle.Append("");
                        templatewai = templatewai.Replace("$Elite$", sbneartitle.ToString());
                        sbneartitle.Append("");
                        //相关Classid
                        nearTitledt = DbHelperOleDb.Query("select top 10 case when len(title)>" + len + " then substring(title,1," + len + ") else title end as Title,HtmlPath from article where iscreate=1 and classid=" + classid + " order by updatetime desc").Tables[0];
                        for (int curr = 0; curr                     {
                            sbneartitle.AppendFormat("
  • ·{1}
  • ", Convert.ToString(nearTitledt.Rows[curr]["HtmlPath"]), Convert.ToString(nearTitledt.Rows[curr]["Title"]));
                        }

                        sbneartitle.Append("");
                        templatewai = templatewai.Replace("$ClassTitle$", sbneartitle.ToString());
                        sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        //sbneartitle.Append("

    ");
                        //DataTable dtlike = zj123.Model.Article.GetLike(artid);
                        //for (int likei = 0; likei                     //{
                        //    sbneartitle.AppendFormat("
  • {1}
  • ", Convert.ToString(dtlike.Rows[likei]["HtmlPath"]), Convert.ToString(dtlike.Rows[likei]["Title"]));
                        //}
                        //sbneartitle.Append("
    ");
                        //waitemp = waitemp.Replace("$LikeTitle$", sbneartitle.ToString());
                        //sbneartitle.Remove(0, sbneartitle.ToString().Length);
                        /////////////////////////////////////////////////////////////////////////////////////////////
                        #endregion
                        //替换链表信息
                        //$typejs$
                        templatewai = templatewai.Replace("$typejs$", classid);
                        //$numjs$
                        templatewai = templatewai.Replace("$numjs$", "10");
                        //$setjs$
                        templatewai = templatewai.Replace("$setjs$", "");
                        string tempzOng= templatewai.Replace("$intemplate$", sbneilist.ToString());
                        string indexshow = (i + 1).ToString() == "1" ? ("") : ((i + 1).ToString());

        

     

        软件开发培训,项目实训,请到华海实训,一流经验,一流的项目实训师,软件工程师成长的摇篮。


    推荐阅读
    • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
    • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
      本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
    • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
    • web.py开发web 第八章 Formalchemy 服务端验证方法
      本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
    • Oracle优化新常态的五大禁止及其性能隐患
      本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
    • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
    • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
    • 知识图谱——机器大脑中的知识库
      本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
    • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
      像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
    • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
    • 在使用dedecms过程中,添加自定义字段变量很有用,但删除并不容易。本文介绍了两种常用的删除方法:执行SQL语句和手动SQL删除。 ... [详细]
    • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
    • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
    • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
    • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
    author-avatar
    好人langren_840
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有