collect.cs

来自「最好用的站点内容管理系统 全部源代码都有」· CS 代码 · 共 928 行 · 第 1/4 页

CS
928
字号
        {
            SqlConnection cn = new SqlConnection(DBConfig.CollectConString);
            cn.Open();
            string Sql = "select count(*) from " + Pre + "Collect_SiteFolder where ChannelID='" + Current.SiteID + "' and SiteFolder=@SiteFolder";
            SqlParameter prm = new SqlParameter("@SiteFolder", SqlDbType.NVarChar, 50);
            prm.Value = Name;
            int n = Convert.ToInt32(DbHelper.ExecuteScalar(cn, CommandType.Text, Sql, prm));
            if (n > 0)
            {
                cn.Close();
                throw new Exception("栏目名称重复");
            }
            Sql = "insert into " + Pre + "Collect_SiteFolder (SiteFolder,SiteFolderDetail,ChannelID) values (@SiteFolder,@SiteFolderDetail,'" + Current.SiteID + "');SELECT @@IDENTITY";
            SqlParameter[] param = new SqlParameter[2];
            param[0] = new SqlParameter("@SiteFolder", SqlDbType.NVarChar, 50);
            param[0].Value = Name;
            param[1] = new SqlParameter("@SiteFolderDetail", SqlDbType.NText);
            param[1].Value = Description.Trim().Equals("") ? DBNull.Value : (object)Description;
            n = Convert.ToInt32(DbHelper.ExecuteScalar(cn, CommandType.Text, Sql, param));
            cn.Close();
            return n;
        }
        public void SiteUpdate(CollectSiteInfo st, int step)
        {
            SqlConnection cn = new SqlConnection(DBConfig.CollectConString);
            cn.Open();
            try
            {
                SqlParameter[] param = null;
                string Sql = "";
                if (step == 1)
                {
                    #region 第一步
                    Sql = "select count(*) from " + Pre + "Collect_Site where SiteName=@SiteName and ChannelID='" + Current.SiteID + "' and ID<>@ID";
                    SqlParameter[] parm = new SqlParameter[2];
                    parm[0] = new SqlParameter("@SiteName", SqlDbType.NVarChar, 50);
                    parm[0].Value = st.SiteName;
                    parm[1] = new SqlParameter("@ID", SqlDbType.Int);
                    parm[1].Value = st.ID;
                    int n = Convert.ToInt32(DbHelper.ExecuteScalar(cn, CommandType.Text, Sql, parm));
                    if (n > 0)
                    {
                        cn.Close();
                        throw new Exception("采集站点名称重复!");
                    }
                    Sql = "update " + Pre + "Collect_Site Set SiteName=@SiteName,objURL=@objURL,Folder=@Folder,ClassID=@ClassID,";
                    Sql += "SaveRemotePic=@SaveRemotePic,Audit=@Audit,IsReverse=@IsReverse,IsAutoPicNews=@IsAutoPicNews,TextTF=@TextTF,";
                    Sql += "IsStyle=@IsStyle,IsDIV=@IsDIV,IsA=@IsA,IsClass=@IsClass,IsFont=@IsFont,IsSpan=@IsSpan,";
                    Sql += "IsObject=@IsObject,IsIFrame=@IsIFrame,IsScript=@IsScript,Encode=@Encode,IsAutoCollect=@IsAutoCollect";
                    Sql += " where ChannelID='" + Current.SiteID + "' and ID=" + st.ID;
                    param = GetParameters(st);
                    #endregion 第一步
                }
                else if (step == 2)
                {
                    #region 第二步
                    Sql = "update " + Pre + "Collect_Site set ListSetting=@ListSetting,OtherPageSetting=@OtherPageSetting,";
                    Sql += "StartPageNum=@StartPageNum,EndPageNum=@EndPageNum,OtherType=@OtherType where ChannelID='" + Current.SiteID + "' and ID=" + st.ID;
                    param = new SqlParameter[5];
                    param[0] = new SqlParameter("@ListSetting", SqlDbType.NVarChar, 4000);
                    param[0].Value = st.ListSetting;
                    param[1] = new SqlParameter("@OtherPageSetting", SqlDbType.NVarChar, 4000);
                    param[1].Value = st.OtherPageSetting.Trim().Equals("") ? DBNull.Value : (object)st.OtherPageSetting;
                    param[2] = new SqlParameter("@StartPageNum", SqlDbType.Int);
                    param[2].Value = st.StartPageNum < 0 ? DBNull.Value : (object)st.StartPageNum;
                    param[3] = new SqlParameter("@EndPageNum", SqlDbType.Int);
                    param[3].Value = st.EndPageNum < 0 ? DBNull.Value : (object)st.EndPageNum;
                    param[4] = new SqlParameter("@OtherType", SqlDbType.Int);
                    param[4].Value = st.OtherType;
                    #endregion 第二步
                }
                else if (step == 3)
                {
                    #region 第三步
                    Sql = "update " + Pre + "Collect_Site set LinkSetting=@LinkSetting where ChannelID='" + Current.SiteID + "' and ID=" + st.ID;
                    param = new SqlParameter[1];
                    param[0] = new SqlParameter("@LinkSetting", SqlDbType.NVarChar, 4000);
                    param[0].Value = st.LinkSetting;
                    #endregion 第三步
                }
                else if (step == 4)
                {
                    #region 第四步
                    Sql = "Update " + Pre + "Collect_Site set PageTitleSetting=@PageTitleSetting,PagebodySetting=@PagebodySetting";
                    Sql += ",AuthorSetting=@AuthorSetting,SourceSetting=@SourceSetting,AddDateSetting=@AddDateSetting,HandSetAuthor=@HandSetAuthor";
                    Sql += ",HandSetSource=@HandSetSource,HandSetAddDate=@HandSetAddDate,OtherNewsType=@OtherNewsType";
                    Sql += ",OtherNewsPageSetting=@OtherNewsPageSetting where ChannelID='" + Current.SiteID + "' and ID=" + st.ID;
                    param = new SqlParameter[10];
                    param[0] = new SqlParameter("@PageTitleSetting", SqlDbType.NVarChar, 4000);
                    param[0].Value = st.PageTitleSetting;
                    param[1] = new SqlParameter("@PagebodySetting", SqlDbType.NVarChar, 4000);
                    param[1].Value = st.PagebodySetting;
                    param[2] = new SqlParameter("@AuthorSetting", SqlDbType.NVarChar, 4000);
                    param[2].Value = st.AuthorSetting.Equals("") ? DBNull.Value : (object)st.AuthorSetting;
                    param[3] = new SqlParameter("@SourceSetting", SqlDbType.NText);
                    param[3].Value = st.SourceSetting.Equals("") ? DBNull.Value : (object)st.SourceSetting;
                    param[4] = new SqlParameter("@AddDateSetting", SqlDbType.NText);
                    param[4].Value = st.AddDateSetting.Equals("") ? DBNull.Value : (object)st.AddDateSetting;
                    param[5] = new SqlParameter("@HandSetAuthor", SqlDbType.NVarChar, 100);
                    param[5].Value = st.HandSetAuthor.Equals("") ? DBNull.Value : (object)st.HandSetAuthor;
                    param[6] = new SqlParameter("@HandSetSource", SqlDbType.NVarChar, 100);
                    param[6].Value = st.HandSetSource.Equals("") ? DBNull.Value : (object)st.HandSetSource;
                    param[7] = new SqlParameter("@HandSetAddDate", SqlDbType.DateTime);
                    param[7].Value = (st.HandSetAddDate.Year < 1753) ? DBNull.Value : (object)st.HandSetAddDate;
                    param[8] = new SqlParameter("@OtherNewsType", SqlDbType.Int);
                    param[8].Value = st.OtherNewsType;
                    param[9] = new SqlParameter("@OtherNewsPageSetting", SqlDbType.NVarChar, 4000);
                    param[9].Value = st.OtherNewsPageSetting.Trim().Equals("") ? DBNull.Value : (object)st.OtherNewsPageSetting;
                    #endregion 第四步
                }
                DbHelper.ExecuteNonQuery(cn, CommandType.Text, Sql, param);
            }
            finally
            {
                if (cn.State == ConnectionState.Open)
                    cn.Close();
            }
        }
        public void FolderUpdate(int id, string Name, string Description)
        {
            SqlConnection cn = new SqlConnection(DBConfig.CollectConString);
            cn.Open();
            string Sql = "select count(*) from " + Pre + "Collect_SiteFolder where SiteFolder=@SiteFolder and ChannelID='" + Current.SiteID + "' and ID<>" + id;
            SqlParameter prm = new SqlParameter("@SiteFolder", SqlDbType.NVarChar, 50);
            prm.Value = Name;
            int n = Convert.ToInt32(DbHelper.ExecuteScalar(cn, CommandType.Text, Sql, prm));
            if (n > 0)
            {
                cn.Close();
                throw new Exception("栏目名称重复");
            }
            Sql = "update " + Pre + "Collect_SiteFolder set SiteFolder=@SiteFolder,SiteFolderDetail=@SiteFolderDetail where ChannelID='" + Current.SiteID + "' and ID=" + id;
            SqlParameter[] param = new SqlParameter[2];
            param[0] = new SqlParameter("@SiteFolder", SqlDbType.NVarChar, 50);
            param[0].Value = Name;
            param[1] = new SqlParameter("@SiteFolderDetail", SqlDbType.NText);
            param[1].Value = Description.Trim().Equals("") ? DBNull.Value : (object)Description;
            DbHelper.ExecuteNonQuery(cn, CommandType.Text, Sql, param);
            cn.Close();
        }
        private SqlParameter[] GetParameters(CollectSiteInfo st)
        {
            SqlParameter[] pmt = new SqlParameter[20];
            pmt[0] = new SqlParameter("@SiteName", SqlDbType.NVarChar, 50);
            pmt[0].Value = st.SiteName;
            pmt[1] = new SqlParameter("@objURL", SqlDbType.NVarChar, 250);
            pmt[1].Value = st.objURL;
            pmt[2] = new SqlParameter("@Folder", SqlDbType.Int);
            pmt[2].Value = st.Folder < 1 ? DBNull.Value : (object)st.Folder;
            pmt[3] = new SqlParameter("@SaveRemotePic", SqlDbType.Bit);
            pmt[3].Value = st.SaveRemotePic;
            pmt[4] = new SqlParameter("@Audit", SqlDbType.NVarChar, 10);
            pmt[4].Value = st.Audit;
            pmt[5] = new SqlParameter("@IsReverse", SqlDbType.Bit);
            pmt[5].Value = st.IsReverse;
            pmt[6] = new SqlParameter("@IsAutoPicNews", SqlDbType.Bit);
            pmt[6].Value = st.IsAutoPicNews;
            pmt[7] = new SqlParameter("@ClassID", SqlDbType.NVarChar, 50);
            pmt[7].Value = st.ClassID;
            pmt[8] = new SqlParameter("@TextTF", SqlDbType.Bit);
            pmt[8].Value = st.TextTF;
            pmt[9] = new SqlParameter("@IsStyle", SqlDbType.Bit);
            pmt[9].Value = st.IsStyle;
            pmt[10] = new SqlParameter("@IsDIV", SqlDbType.Bit);
            pmt[10].Value = st.IsDIV;
            pmt[11] = new SqlParameter("@IsA", SqlDbType.Bit);
            pmt[11].Value = st.IsA;
            pmt[12] = new SqlParameter("@IsClass", SqlDbType.Bit);
            pmt[12].Value = st.IsClass;
            pmt[13] = new SqlParameter("@IsFont", SqlDbType.Bit);
            pmt[13].Value = st.IsFont;
            pmt[14] = new SqlParameter("@IsSpan", SqlDbType.Bit);
            pmt[14].Value = st.IsSpan;
            pmt[15] = new SqlParameter("@IsObject", SqlDbType.Bit);
            pmt[15].Value = st.IsObject;
            pmt[16] = new SqlParameter("@IsIFrame", SqlDbType.Bit);
            pmt[16].Value = st.IsIFrame;
            pmt[17] = new SqlParameter("@IsScript", SqlDbType.Bit);
            pmt[17].Value = st.IsScript;
            pmt[18] = new SqlParameter("@Encode", SqlDbType.NVarChar, 50);
            pmt[18].Value = st.Encode;
            pmt[19] = new SqlParameter("@IsAutoCollect", SqlDbType.Bit);
            pmt[19].Value = st.IsAutoCollect;
            return pmt;
        }
        public DataTable GetRulePage(int PageIndex, int PageSize, out int RecordCount, out int PageCount)
        {
            return DbHelper.ExecutePage(DBConfig.CollectConString, "ID,RuleName,AddDate", Pre + "Collect_Rule where ChannelID='" + Current.SiteID + "'", "ID", "Order by ID", PageIndex, PageSize, out RecordCount, out PageCount, null);
        }
        public void RuleDelete(int id)
        {
            SqlConnection cn = new SqlConnection(DBConfig.CollectConString);
            cn.Open();
            SqlTransaction trans = cn.BeginTransaction();
            try
            {
                string Sql = "delete from " + Pre + "Collect_RuleApply where RuleID=" + id;
                DbHelper.ExecuteNonQuery(trans, CommandType.Text, Sql, null);
                Sql = "delete from " + Pre + "Collect_Rule where ChannelID='" + Current.SiteID + "' and ID=" + id;
                DbHelper.ExecuteNonQuery(trans, CommandType.Text, Sql, null);
                trans.Commit();
            }
            catch
            {
                trans.Rollback();
                throw;
            }
            finally
            {
                if (cn != null && cn.State == ConnectionState.Open)
                    cn.Close();
            }
        }
        public int RuleAdd(string Name, string OldStr, string NewStr, int[] AppSites, bool IgnoreCase)
        {
            int id = 0;
            SqlConnection cn = new SqlConnection(DBConfig.CollectConString);
            cn.Open();
            string Sql = "select count(*) from " + Pre + "Collect_Rule where RuleName=@RuleName and ChannelID='" + Current.SiteID + "'";
            SqlParameter param = new SqlParameter("@RuleName", SqlDbType.NVarChar, 50);
            param.Value = Name;
            int n = Convert.ToInt32(DbHelper.ExecuteScalar(cn, CommandType.Text, Sql, param));
            if (n > 0)
            {
                cn.Close();
                throw new Exception("规则名称重复");
            }
            SqlTransaction Trans = cn.BeginTransaction();
            try
            {
                Sql = "insert into " + Pre + "Collect_Rule (RuleName,OldContent,ReContent,AddDate,IgnoreCase,ChannelID) values (@RuleName,@OldContent,@ReContent,@AddDate,@IgnoreCase,'" + Current.SiteID + "')";
                Sql += ";SELECT @@IDENTITY";

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?