三層及winform前臺頁面 XmlHelper.cs Sqlhelper.cs AbstractSqlHelper.cs Com.cs 分頁控件的後臺代碼



using System;
namespace TSMS.Model
{
 /// <summary>
 /// 描述員工的在職狀態
 /// </summary>
 [Serializable]
 public partial class tb_potential
 {
  public tb_potential()
  {}
  #region Model
  private int _potstuid;
  private string _stuname;
  private string _stupho;
  private string _stuparentpho;
  private string _stuadress;
  private string _sturemarks;
  /// <summary>
  /// 
  /// </summary>
  public int potstuid
  {
   set{ _potstuid=value;}
   get{return _potstuid;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stuname
  {
   set{ _stuname=value;}
   get{return _stuname;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stupho
  {
   set{ _stupho=value;}
   get{return _stupho;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stuparentpho
  {
   set{ _stuparentpho=value;}
   get{return _stuparentpho;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stuadress
  {
   set{ _stuadress=value;}
   get{return _stuadress;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string sturemarks
  {
   set{ _sturemarks=value;}
   get{return _sturemarks;}
  }
  #endregion Model
 }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSMS.Model;
using TSMS.Common;
using System.Data.SqlClient;
using System.Data;
namespace TSMS.DAL
{
   public  class Dalpotential:IDalData<tb_potential>
   {
       SqlHelper _sqlhelper = new SqlHelper();
        /// <summary>
        /// 添加潛在學生
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool InsertItem(tb_potential t)
        {         
            SqlParameter[] parameters =
                {                             
                    new SqlParameter("@stuname",SqlDbType.NVarChar,12),
                    new SqlParameter("@stupho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuparentpho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuadress",SqlDbType.NVarChar,50),                 
                    new SqlParameter("@sturemarks",SqlDbType.NVarChar,120)
                };         
            parameters[0].Value = t.stuname;
            parameters[1].Value = t.stupho;
            parameters[2].Value = t.stuparentpho;
            parameters[3].Value = t.stuadress;
            parameters[4].Value = t.sturemarks;        
            string sql = @"INSERT INTO [tb_potential] ([stuname],[stupho],[stuparentpho],[stuadress],[sturemarks])
            VALUES (@stuname,@stupho,@stuparentpho,@stuadress,@sturemarks)";
            return _sqlhelper.ExecuteNonQurey(sql, CommandType.Text, parameters);        
        }
        /// <summary>
        /// 修改潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool UpdateItem(tb_potential t)
        {
            SqlParameter[] parameters =
                {                             
                    new SqlParameter("@stuname",SqlDbType.NVarChar,12),
                    new SqlParameter("@stupho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuparentpho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuadress",SqlDbType.NVarChar,50),                 
                    new SqlParameter("@sturemarks",SqlDbType.NVarChar,120),
                    new SqlParameter("@potstuid",SqlDbType.Int)
                };
            parameters[0].Value = t.stuname;
            parameters[1].Value = t.stupho;
            parameters[2].Value = t.stuparentpho;
            parameters[3].Value = t.stuadress;
            parameters[4].Value = t.sturemarks;
            parameters[5].Value = t.potstuid;
            string sql = @"UPDATE tb_potential  SET stuname=@stuname,stupho =@stupho,
            stuparentpho= @stuparentpho,stuadress =@stuadress,sturemarks = @sturemarks
            WHERE potstuid = @potstuid";
            return _sqlhelper.ExecuteNonQurey(sql, CommandType.Text, parameters);    
        }
        /// <summary>
        /// 刪除潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool DeleteItem(string strSelected)
        {
            
            strSelected = strSelected.Trim(new char[] { ',' });//重要細節,慢慢研究
            string sql = @"DELETE FROM [TSMS].[dbo].[tb_potential]
            WHERE [potstuid] in (" + strSelected + ")";
            return _sqlhelper.ExecuteNonQurey(sql, CommandType.Text);     
        }
        public List<tb_potential> GetListModel()
        {
            throw new NotImplementedException();
        }
        public tb_potential GetModel(int id)
        {
            throw new NotImplementedException();
        }
        /// <summary>
        /// 分頁按鈕
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="pageCount"></param>
        /// <returns></returns>
        public DataTable GetAllVacation(Condition condition, out int pageCount)
        {
            SqlParameter[] parameters =
                {                             
                    new SqlParameter("@pageSize",SqlDbType.Int),
                    new SqlParameter("@pageIndex",SqlDbType.Int),
                    new SqlParameter("@tableName",SqlDbType.VarChar,50),
                    new SqlParameter("@priKey",SqlDbType.VarChar,20),                 
                    new SqlParameter("@condition",SqlDbType.VarChar,2000),
                    new SqlParameter("@sort",SqlDbType.VarChar,4),
                    new SqlParameter("@pageCount",SqlDbType.Int )
                };
            parameters[0].Value = condition.PageSize;
            parameters[1].Value = condition.PageIndex;
            parameters[2].Value = condition.TableName;
            parameters[3].Value = condition.Prikye;
            parameters[4].Value = condition.Condtion;
            parameters[5].Value = condition.Pagesort;
            parameters[6].Direction = ParameterDirection.Output;
            string sql = @"exec proc_CommonSinglePage @pageSize,@pageIndex,@tableName,@priKey,@condition,@sort,@pagecount out";
            DataTable db = _sqlhelper.GetDataTable(sql, CommandType.Text, parameters);
            pageCount = (int)parameters[6].Value;
            return db;          
        }

        public bool DeleteItem(tb_potential t)
        {
            throw new NotImplementedException();
        }
   }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSMS.DAL;
using TSMS.Model;
using System.Data;
namespace TSMS.BLL
{
    public class Bllpotential
    {
        private Dalpotential dalpot = new Dalpotential();
        /// <summary>
        /// 新增一個潛在學生
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool InsertItem(tb_potential t)
        {
            return dalpot.InsertItem(t);
        }
        /// <summary>
        /// 更新潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool UpdateItem(tb_potential t)
        {
            return dalpot.UpdateItem(t);
        }
        /// <summary>
        /// 刪除潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool DeleteItem(string strSelected)
        {
            return dalpot.DeleteItem(strSelected);
        }
        public DataTable GetAllVacation(Condition condition, out int pageCount)
        {
            return dalpot.GetAllVacation(condition, out pageCount);
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data.SqlClient;//對於SQLServer數據庫的封裝操作
using System.Collections;//因爲要用到集合的存儲,所以我們採用的是集合的命名空間
using TSMS.Model;
using TSMS.BLL;
namespace TSMS
{
    public partial class Faddpotstus : DevExpress.XtraEditors.XtraForm
    {
        int pageCount = 0;//總頁數
        int pageIndex = 1;//首頁
        private int row = 0;//點擊的行號
        private int pronum = 0;//點擊的行號對應的id
        Bllpotential potential = new Bllpotential();
        public Faddpotstus()
        {
            InitializeComponent();
            this.uCpaging1.PageEvent += new EventHandler<WFCL.UCpaging.PageEventArgs>(uCpaging1_PageEvent);
            GetVacationList(GetCondition(), out pageCount);
            this.uCpaging1.pageCount = pageCount;
        }
        void uCpaging1_PageEvent(object sender, WFCL.UCpaging.PageEventArgs e)
        {
            pageIndex = e.PageIndex;//把分頁控件中的主頁傳到當前主頁
            GetVacationList(GetCondition(), out pageCount);
            this.uCpaging1.pageCount = pageCount;  
        }
        /// <summary>
        /// 獲取學生實體
        /// </summary>
        /// <returns></returns>
        public tb_potential GetPotModel()
        {
            tb_potential potential = new tb_potential();
            potential.stuname = txe_potstuname.Text;
            potential.stupho = txe_potstupho.Text;
            potential.stuparentpho = txe_potstuparentpho.Text;
            potential.stuadress = txe_potstuadress.Text;
            potential.sturemarks = txe_potsturemarks.Text;
            potential.potstuid = Convert.ToInt32(lbl_potentialid.Text);
            return potential;
        }
         /// <summary>
        /// 獲得查詢條件
        /// </summary>
        /// <returns></returns>
        public Condition GetCondition()
        {
            Condition condition = new Condition();
            condition.PageIndex = pageIndex;
            condition.Pagecount = pageCount;
            condition.PageSize = 2;
            condition.Prikye = "potstuid";
            condition.TableName = "tb_potential";
            condition.Condtion = "";
            condition.Pagesort = "desc";
            return condition;
        }
        /// <summary>
        /// 新增潛在學生按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_add_Click(object sender, EventArgs e)
        {
            if (potential.InsertItem(GetPotModel()))
            {
                GetVacationList(GetCondition(), out pageCount);
                XtraMessageBox.Show("新增學生成功");
            }
        }
        /// <summary>
        /// 更新潛在學生信息按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_amend_Click(object sender, EventArgs e)
        {
            if (potential.UpdateItem(GetPotModel()))
            {
                GetVacationList(GetCondition(), out pageCount);
                XtraMessageBox.Show("更新學生信息成功");
            }
        }
        /// <summary>
        /// 刪除學生信息按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_delete_Click(object sender, EventArgs e)
        {
            string value = "";
            string strSelected = "";
            for (int i = 0; i < gridView1.RowCount; i++)
            {
                value = gridView1.GetDataRow(i)["check"].ToString();
                if (value == "True")
                {
                    strSelected += gridView1.GetRowCellValue(i, "potstuid");
                    strSelected += ",";        
                }             
            }
            MessageBox.Show("刪除學生信息成功");
            strSelected = strSelected.Remove(strSelected.LastIndexOf(","), 1); //刪除最後一個逗號
           
            potential.DeleteItem(strSelected);
            GetVacationList(GetCondition(), out pageCount);
        }
        /// <summary>
        /// 選中的行數
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gridView1_Click(object sender, EventArgs e)
        {
            //獲取這一行
            int row = this.gridView1.FocusedRowHandle;
            //沒有選中
            if (row < 0)
                return;
            pronum = Convert.ToInt32(this.gridView1.GetRowCellValue(row, "potstuid"));
            lbl_potentialid.Text = pronum.ToString();
            this.txe_potstuname.Text = this.gridView1.GetRowCellValue(row, "stuname").ToString();
            this.txe_potstupho.Text = this.gridView1.GetRowCellValue(row, "stupho").ToString();
            this.txe_potstuparentpho.Text = this.gridView1.GetRowCellValue(row, "stuparentpho").ToString();
            this.txe_potstuadress.EditValue = this.gridView1.GetRowCellValue(row, "stuadress").ToString();
            this.txe_potsturemarks.EditValue = this.gridView1.GetRowCellValue(row, "sturemarks").ToString();
            
        }
        public void GetVacationList(Condition condition, out int pageCount)
        {
            //新建一個數據表 
            DataTable db = potential.GetAllVacation(condition, out pageCount);
            //在表中增加一個列 add(列名,列類型)
            db.Columns.Add("check", typeof(bool));
            //給每一行的該列賦值
            for (int i = 0; i < db.Rows.Count; i++)
            {
                db.Rows[i]["check"] = "false";
            }
            this.gridControl1.DataSource = db;
        }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace TSMS.Common
{
   public  class XmlHelper
    {
       #region 對節點操作
        /// <summary>
        /// 增加一個新節點
        /// </summary>
        /// <param name="filePath">xml文件名</param>
        /// <param name="xPath"></param>
        /// <param name="xmlNode">新增加的節點</param>
        /// <returns></returns>
        public static bool AppendChild(string filePath, string xPath, XmlNode xmlNode)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                xmldoc.Load(filePath);//從xPath路徑中加載一個xml文件
                XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找匹配第一個xml節點
                XmlNode n = xmldoc.ImportNode(xmlNode, true);//把節點導入新節點
                xn.AppendChild(n);
                xmldoc.Save(filePath);
                
            }
            catch (Exception)
            {
                
                return false;
            }
            return true;
        }
        /// <summary>
        /// 刪除指定節點下所有的子節點
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="xPath"></param>
        /// <returns></returns>
        public static bool DeleteAllChild(string filePath, string xPath)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                XmlElement root = xmldoc.DocumentElement;
                xmldoc.Load(filePath);//從xPath路徑中加載一個xml文件
                XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找匹配第一個xml節點
                xn.RemoveAll();
                xmldoc.Save(filePath);
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        /// <summary>
        /// 移除指定節點的子節點 
        /// </summary>           
        /// <param name="filePath">xml文件名</param>
        /// <param name="xPath">被刪除節點的父節點xPath路徑</param>
        /// <param name="xPathChi">被刪除節點的的xPath路徑</param>
        /// <returns></returns> 
        public static bool DeleteChild(string filePath, string xPath, string xPathChi)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                XmlElement root = xmldoc.DocumentElement;
                xmldoc.Load(filePath);//從xPath路徑中加載一個xml文件
                XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找匹配第一個xml節點
                XmlNode n = xmldoc.SelectSingleNode(xPathChi);//查找匹配xml子節點
                xn.RemoveChild(n);
                xmldoc.Save(filePath);
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        #endregion    
        /// <summary>
        /// 獲取指定路徑節點中所有子節點的值
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="xPath"></param>
        /// <returns></returns>
       public static List<string> GetListValues(string filePath, string xPath)
        {   List<string> list = new List<string>();
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                xmldoc.Load(filePath);
                XmlNode xn = xmldoc.SelectSingleNode(xPath);
                XmlElement newNode = (XmlElement)xn;//要讀取的節點轉換爲元素                     
                foreach (XmlNode tempNode in newNode)
                {
                    XmlNode Node = tempNode.ChildNodes[0];
                    string nodeName = Node.InnerText;//取子節點的值
                    string u = nodeName;
                    list.Add(u);
                }
            }
            catch (Exception)
            {
                return null;
            }
            return list;
        }
       /// <summary>
       /// 獲取指定節點的指定屬性
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="xPath"></param>
       /// <param name="attName">屬性集合</param>
       /// <returns></returns>
       public static List<string> GetListAttribute(string filePath, string xPath,params string[] attName)
       {
           List<string> list = new List<string>();
           try
           {
               XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
               xmldoc.Load(filePath);
               XmlNode xn = xmldoc.SelectSingleNode(xPath);
               XmlElement newNode = (XmlElement)xn;//要讀取的節點轉換爲元素                  
               for (int i = 0; i < attName.Length; i++)
               {
                   string stratt = newNode.GetAttribute(attName[i]);
                   list.Add(stratt);
               }
           }
           catch (Exception)
           {
               
               return null;
           }
           return list;
       }     
       /// <summary>
       /// 給節點增加(修改)屬性
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="xPath"></param>
       /// <param name="attName">string</param>
       /// <param name="attValue">string</param>
       /// <returns></returns>
       public static bool UpdateAttribute(string filePath, string xPath,string attName, string attValue)
       {
           try
           {
               XmlDocument xmldoc = new XmlDocument();//實例化xml文件
               xmldoc.Load(filePath);//根據路徑加載xml文件
               XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找一個xml節點         
               XmlAttribute xa = xmldoc.CreateAttribute(attName);
               xa.InnerText = attValue;
               xn.Attributes.Append(xa);
               xmldoc.Save(filePath);
           }
           catch (Exception)
           {
               return false;
           }
           return true;
       }
       /// <summary>
       /// 刪除指定名稱的屬性
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="attName">節點名稱</param>
       /// <returns></returns>
       public static bool DeleteAttribute(string filePath,string attName)
       {
           try
           {
               XmlDocument doc = new XmlDocument();
               doc.Load(filePath);
               XmlElement root = doc.DocumentElement;//獲取根節點
               XmlNodeList nodelist = root.ChildNodes;//獲取所有節點列表
               XmlNode node = null;
               foreach (XmlNode tempNode in nodelist)
               {
                   if (tempNode.NodeType == XmlNodeType.Element)
                   {
                       if (tempNode.ChildNodes[0].InnerText == attName)
                       {
                           node = tempNode;
                           break;
                       }
                   }
               }
               if (node != null)
               {
                   root.RemoveChild(node);
                   doc.Save(filePath);
               }
           }
           catch (Exception)
           {
               return false;
           }
           return true;
       }    
       /// <summary>
       /// 更新(增加 修改)節點內容
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="xPath"></param>
       /// <param name="value"></param>
       /// <returns></returns>
       public static bool UpateNodeInnerText(string filePath, string xPath, string value)
       {
           try
           {
               XmlDocument doc = new XmlDocument();
               doc.Load(filePath);
               XmlNode xn = doc.SelectSingleNode(xPath);//根據路徑選擇節點
               XmlElement xe = (XmlElement)xn;
               xe.InnerText = value;
               doc.Save(filePath);
           }
           catch (Exception)
           {
               return false;
           }
           return true;
       }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace TSMS.Common
{
    /// <summary>
    /// 負責對於ADO.NET的封裝。
    /// </summary>
    public class SqlHelper : AbstractSqlHelper
    {
        /// <summary>
        /// 執行非查詢
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override bool ExecuteNonQurey(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype, parameters);
            int reuslt =cmd.ExecuteNonQuery();
            CloseConnection();
            return reuslt > 0 ? true : false;
        }
        /// <summary>
        /// 獲取數據表
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override DataTable GetDataTable(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype, parameters);     
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet dataset = new DataSet();
            sda.Fill(dataset);
            return dataset.Tables[0];              
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override object GetSingleData(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype,parameters);
            object o = cmd.ExecuteScalar();
            CloseConnection();
            return o;
        }
        /// <summary>
        /// 獲取數據流
        /// </summary>
        /// <param name="sql"></param>      
        public override SqlDataReader GetDataReader(string sql,CommandType cmdtype, params SqlParameter[] parameters)
        {  
            SqlCommand cmd = GetCommand(sql,cmdtype, parameters);
            SqlDataReader sdr = cmd.ExecuteReader();
            CloseConnection();
            return sdr;
        }
        /// <summary>
        ///獲取緩存中數據表
        /// </summary>
        public override DataSet GetDataSet(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
           
            SqlCommand cmd = GetCommand(sql,cmdtype ,parameters);          
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet dataset = new DataSet();
            sda.Fill(dataset);
            return dataset;  
        }
        public override DataSet GetDataSet(string sql, CommandType cmdtype, List<SqlParameter> list)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype,list);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds;
        }
    }
}


using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Configuration;
namespace TSMS.Common
{ //定義一個抽象類
    public abstract class AbstractSqlHelper
    {   
        private SqlConnection conn = null;//初始化一個sql連接
        /// <summary>
        /// 獲取連接字符串並打開
        /// </summary>
        public void GetConnection()
        {   //private static string conStr = ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString;
            string strCon = ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString;
            conn = new SqlConnection(strCon);
            conn.Open();
            if (conn.State!=ConnectionState.Open)
            {
                conn.Close();
                conn.Dispose();
            }
        }
        /// <summary>
        /// 關閉連接
        /// </summary>
        public void CloseConnection()
        {
            if (conn!=null)
            {
                conn.Close();
                conn.Dispose();
            }
        }
        /// <summary>
        /// 設置需要執行的存儲過程或語句
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="pars"></param>
        /// <returns></returns>
        #region 設置需要執行的存儲過程或語句
        public SqlCommand GetCommand(string sql, CommandType cmdtype, params SqlParameter[] pars)
        {
            GetConnection();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandType = cmdtype;
            cmd.CommandText = sql;
            if (pars != null)
            {
                cmd.Parameters.AddRange(pars);
            }
            return cmd;
        }
        public SqlCommand GetCommand(string sql, CommandType cmdtype, List<SqlParameter> pars)
        {
            GetConnection();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandType = cmdtype;
            cmd.CommandText = sql;
            foreach (SqlParameter s in pars)
            {
                cmd.Parameters.Add(s);
            }
            return cmd;
        } 
        #endregion
        /// <summary>
        /// 執行非查詢
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public abstract bool ExecuteNonQurey(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        /// <summary>
        /// 查詢表通過參數
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns>DataSet</returns>
        public abstract DataSet GetDataSet(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        /// <summary>
        /// 查詢表通過list泛型集合
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public abstract DataSet GetDataSet(string sql, CommandType cmdtype, List<SqlParameter> list);
        /// <summary>
        ///  查詢表通過參數
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns>DataTable</returns>
        public abstract DataTable GetDataTable(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        public abstract object GetSingleData(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        public abstract SqlDataReader GetDataReader(string sql,CommandType cmdtype,params SqlParameter[] parameters);
   
    }
} 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Linq;
namespace TSMS.Common
{
    public  class Com
    {   //檢查是否爲整數
        public bool CheckInt(string str)
        {        
         int num;
         return int.TryParse(str, out num);           
        }
     
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using DevExpress.XtraPrinting;
namespace TSMS.WFCL
{
    public partial class UCpaging : UserControl
    {
        //定義一個分頁的事件
        public event EventHandler<PageEventArgs> PageEvent;
        public int pageCount = 0; //默認總頁數
        public int pageIndex = 1; //默認顯示頁數
        public UCpaging()
        {
            InitializeComponent();
            SibIsEnable();
            
        }
      
        public class PageEventArgs : EventArgs
        {
            private int pageSize;
            private int pageIndex;
            public int PageSize
            {
                get { return pageSize; }
                set { pageSize = value; }
            }
            public int PageIndex
            {
                get { return pageIndex; }
                set { pageIndex = value; }
            }
        }
        /// <summary>
        /// 首頁
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_homepage_Click(object sender, EventArgs e)
        {
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pargs.PageIndex = 1;
                pageIndex = pargs.PageIndex;
                this.txe_nowpage.Text = "1";
                this.lbl_nowpage.Text = "/" + pageCount + "頁";
                SibIsEnable();
                PageEvent(sender, pargs);
            }
        }
        /// <summary>
        /// 上一頁
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_propage_Click(object sender, EventArgs e)
        {
            PageEventArgs pargs = new PageEventArgs();
            pageIndex = pageIndex == 1 ? pageIndex : pageIndex - 1;
            pargs.PageIndex = pageIndex;
            this.txe_nowpage.Text = pageIndex.ToString();
            this.lbl_nowpage.Text = "/" + pageCount + "頁";
            PageEvent(sender, pargs);
            SibIsEnable();
        }
        /// <summary>
        /// 下一頁
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sim_nextpage_Click(object sender, EventArgs e)
        {
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pageIndex = pageIndex == pageCount ? pageCount : pageIndex + 1;
                pargs.PageIndex = pageIndex;
                this.txe_nowpage.Text = pageIndex.ToString();
                this.lbl_nowpage.Text = "/" + pageCount + "頁";
                PageEvent(sender, pargs);
                SibIsEnable();
            }
        }
        /// <summary>
        /// 末頁
        /// </summary> <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_endpage_Click(object sender, EventArgs e)
        {
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pargs.PageIndex = pageCount;
                pageIndex = pageCount;
                this.txe_nowpage.Text = pageCount.ToString();
                this.lbl_nowpage.Text = "/" + pageCount + "頁";
                SibIsEnable();
                PageEvent(sender, pargs);
            }
        }
        /// <summary>
        /// 跳轉
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_jump_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(this.txe_nowpage.Text.ToString())==0)
            {
               this.txe_nowpage.Text= "1";
            }
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pageIndex = Convert.ToInt32(this.txe_nowpage.Text.ToString());
                pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
                pargs.PageIndex = pageIndex;
                PageEvent(sender, pargs);
                SibIsEnable();
            }
        }
        public void SibIsEnable()
        {
            #region 分頁按鈕是否可用
            this.lbl_nowpage.Text = "/" + pageCount + "頁";
            if (pageIndex <= 1)
            {
                sib_homepage.Enabled = false;
                sib_endpage.Enabled = true;
                sib_prepage.Enabled = false;
                sib_nextpage.Enabled = true;
            }
            else if (pageIndex >= pageCount)
            {
                sib_homepage.Enabled = true;
                sib_endpage.Enabled = false;
                sib_prepage.Enabled = true;
                sib_nextpage.Enabled = false;
            }
            else
            {
                sib_homepage.Enabled = true;
                sib_endpage.Enabled = true;
                sib_prepage.Enabled = true;
                sib_nextpage.Enabled = true;
            }
            #endregion
        }
        private void UCpaging_Load(object sender, EventArgs e)
        {
            this.lbl_nowpage.Text = "/" + pageCount + "頁";
            this.txe_nowpage.Text = pageIndex.ToString();
            SibIsEnable();
        }
        #region 文本框限制輸入
        //private string pattern = @"^[0-9]*$";
        ////private string param1 = null;
        //private void txe_nowpage_EditValueChanged(object sender, EventArgs e)
        //{
        //    Match m = Regex.Match(this.txe_nowpage.Text, pattern); // 匹配正則表達式
        //    if (!m.Success) // 輸入的不是數字
        //    {
        //        this.txe_nowpage.Text = null; //textBox內容清空
        //        // 將光標定位到文本框的最後
        //        //this.txe_nowpage.SelectionStart = this.txe_nowpage.Text.Length;
        //    }
        //    //else // 輸入的是數字
        //    //{
        //    //    param1 = this.txe_nowpage.Text; // 將現在textBox的值保存下
        //    //}
        //} 
        #endregion
    }
}

using System;
namespace TSMS.Model
{
 /// <summary>
 /// 描述員工的在職狀態
 /// </summary>
 [Serializable]
 public partial class tb_potential
 {
  public tb_potential()
  {}
  #region Model
  private int _potstuid;
  private string _stuname;
  private string _stupho;
  private string _stuparentpho;
  private string _stuadress;
  private string _sturemarks;
  /// <summary>
  /// 
  /// </summary>
  public int potstuid
  {
   set{ _potstuid=value;}
   get{return _potstuid;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stuname
  {
   set{ _stuname=value;}
   get{return _stuname;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stupho
  {
   set{ _stupho=value;}
   get{return _stupho;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stuparentpho
  {
   set{ _stuparentpho=value;}
   get{return _stuparentpho;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string stuadress
  {
   set{ _stuadress=value;}
   get{return _stuadress;}
  }
  /// <summary>
  /// 
  /// </summary>
  public string sturemarks
  {
   set{ _sturemarks=value;}
   get{return _sturemarks;}
  }
  #endregion Model
 }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSMS.Model;
using TSMS.Common;
using System.Data.SqlClient;
using System.Data;
namespace TSMS.DAL
{
   public  class Dalpotential:IDalData<tb_potential>
   {
       SqlHelper _sqlhelper = new SqlHelper();
        /// <summary>
        /// 添加潛在學生
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool InsertItem(tb_potential t)
        {         
            SqlParameter[] parameters =
                {                             
                    new SqlParameter("@stuname",SqlDbType.NVarChar,12),
                    new SqlParameter("@stupho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuparentpho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuadress",SqlDbType.NVarChar,50),                 
                    new SqlParameter("@sturemarks",SqlDbType.NVarChar,120)
                };         
            parameters[0].Value = t.stuname;
            parameters[1].Value = t.stupho;
            parameters[2].Value = t.stuparentpho;
            parameters[3].Value = t.stuadress;
            parameters[4].Value = t.sturemarks;        
            string sql = @"INSERT INTO [tb_potential] ([stuname],[stupho],[stuparentpho],[stuadress],[sturemarks])
            VALUES (@stuname,@stupho,@stuparentpho,@stuadress,@sturemarks)";
            return _sqlhelper.ExecuteNonQurey(sql, CommandType.Text, parameters);        
        }
        /// <summary>
        /// 修改潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool UpdateItem(tb_potential t)
        {
            SqlParameter[] parameters =
                {                             
                    new SqlParameter("@stuname",SqlDbType.NVarChar,12),
                    new SqlParameter("@stupho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuparentpho",SqlDbType.VarChar,11),
                    new SqlParameter("@stuadress",SqlDbType.NVarChar,50),                 
                    new SqlParameter("@sturemarks",SqlDbType.NVarChar,120),
                    new SqlParameter("@potstuid",SqlDbType.Int)
                };
            parameters[0].Value = t.stuname;
            parameters[1].Value = t.stupho;
            parameters[2].Value = t.stuparentpho;
            parameters[3].Value = t.stuadress;
            parameters[4].Value = t.sturemarks;
            parameters[5].Value = t.potstuid;
            string sql = @"UPDATE tb_potential  SET stuname=@stuname,stupho =@stupho,
            stuparentpho= @stuparentpho,stuadress =@stuadress,sturemarks = @sturemarks
            WHERE potstuid = @potstuid";
            return _sqlhelper.ExecuteNonQurey(sql, CommandType.Text, parameters);    
        }
        /// <summary>
        /// 刪除潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool DeleteItem(string strSelected)
        {
            
            strSelected = strSelected.Trim(new char[] { ',' });//重要細節,慢慢研究
            string sql = @"DELETE FROM [TSMS].[dbo].[tb_potential]
            WHERE [potstuid] in (" + strSelected + ")";
            return _sqlhelper.ExecuteNonQurey(sql, CommandType.Text);     
        }
        public List<tb_potential> GetListModel()
        {
            throw new NotImplementedException();
        }
        public tb_potential GetModel(int id)
        {
            throw new NotImplementedException();
        }
        /// <summary>
        /// 分頁按鈕
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="pageCount"></param>
        /// <returns></returns>
        public DataTable GetAllVacation(Condition condition, out int pageCount)
        {
            SqlParameter[] parameters =
                {                             
                    new SqlParameter("@pageSize",SqlDbType.Int),
                    new SqlParameter("@pageIndex",SqlDbType.Int),
                    new SqlParameter("@tableName",SqlDbType.VarChar,50),
                    new SqlParameter("@priKey",SqlDbType.VarChar,20),                 
                    new SqlParameter("@condition",SqlDbType.VarChar,2000),
                    new SqlParameter("@sort",SqlDbType.VarChar,4),
                    new SqlParameter("@pageCount",SqlDbType.Int )
                };
            parameters[0].Value = condition.PageSize;
            parameters[1].Value = condition.PageIndex;
            parameters[2].Value = condition.TableName;
            parameters[3].Value = condition.Prikye;
            parameters[4].Value = condition.Condtion;
            parameters[5].Value = condition.Pagesort;
            parameters[6].Direction = ParameterDirection.Output;
            string sql = @"exec proc_CommonSinglePage @pageSize,@pageIndex,@tableName,@priKey,@condition,@sort,@pagecount out";
            DataTable db = _sqlhelper.GetDataTable(sql, CommandType.Text, parameters);
            pageCount = (int)parameters[6].Value;
            return db;          
        }

        public bool DeleteItem(tb_potential t)
        {
            throw new NotImplementedException();
        }
   }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSMS.DAL;
using TSMS.Model;
using System.Data;
namespace TSMS.BLL
{
    public class Bllpotential
    {
        private Dalpotential dalpot = new Dalpotential();
        /// <summary>
        /// 新增一個潛在學生
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool InsertItem(tb_potential t)
        {
            return dalpot.InsertItem(t);
        }
        /// <summary>
        /// 更新潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool UpdateItem(tb_potential t)
        {
            return dalpot.UpdateItem(t);
        }
        /// <summary>
        /// 刪除潛在學生信息
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public bool DeleteItem(string strSelected)
        {
            return dalpot.DeleteItem(strSelected);
        }
        public DataTable GetAllVacation(Condition condition, out int pageCount)
        {
            return dalpot.GetAllVacation(condition, out pageCount);
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data.SqlClient;//對於SQLServer數據庫的封裝操作
using System.Collections;//因爲要用到集合的存儲,所以我們採用的是集合的命名空間
using TSMS.Model;
using TSMS.BLL;
namespace TSMS
{
    public partial class Faddpotstus : DevExpress.XtraEditors.XtraForm
    {
        int pageCount = 0;//總頁數
        int pageIndex = 1;//首頁
        private int row = 0;//點擊的行號
        private int pronum = 0;//點擊的行號對應的id
        Bllpotential potential = new Bllpotential();
        public Faddpotstus()
        {
            InitializeComponent();
            this.uCpaging1.PageEvent += new EventHandler<WFCL.UCpaging.PageEventArgs>(uCpaging1_PageEvent);
            GetVacationList(GetCondition(), out pageCount);
            this.uCpaging1.pageCount = pageCount;
        }
        void uCpaging1_PageEvent(object sender, WFCL.UCpaging.PageEventArgs e)
        {
            pageIndex = e.PageIndex;//把分頁控件中的主頁傳到當前主頁
            GetVacationList(GetCondition(), out pageCount);
            this.uCpaging1.pageCount = pageCount;  
        }
        /// <summary>
        /// 獲取學生實體
        /// </summary>
        /// <returns></returns>
        public tb_potential GetPotModel()
        {
            tb_potential potential = new tb_potential();
            potential.stuname = txe_potstuname.Text;
            potential.stupho = txe_potstupho.Text;
            potential.stuparentpho = txe_potstuparentpho.Text;
            potential.stuadress = txe_potstuadress.Text;
            potential.sturemarks = txe_potsturemarks.Text;
            potential.potstuid = Convert.ToInt32(lbl_potentialid.Text);
            return potential;
        }
         /// <summary>
        /// 獲得查詢條件
        /// </summary>
        /// <returns></returns>
        public Condition GetCondition()
        {
            Condition condition = new Condition();
            condition.PageIndex = pageIndex;
            condition.Pagecount = pageCount;
            condition.PageSize = 2;
            condition.Prikye = "potstuid";
            condition.TableName = "tb_potential";
            condition.Condtion = "";
            condition.Pagesort = "desc";
            return condition;
        }
        /// <summary>
        /// 新增潛在學生按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_add_Click(object sender, EventArgs e)
        {
            if (potential.InsertItem(GetPotModel()))
            {
                GetVacationList(GetCondition(), out pageCount);
                XtraMessageBox.Show("新增學生成功");
            }
        }
        /// <summary>
        /// 更新潛在學生信息按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_amend_Click(object sender, EventArgs e)
        {
            if (potential.UpdateItem(GetPotModel()))
            {
                GetVacationList(GetCondition(), out pageCount);
                XtraMessageBox.Show("更新學生信息成功");
            }
        }
        /// <summary>
        /// 刪除學生信息按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_delete_Click(object sender, EventArgs e)
        {
            string value = "";
            string strSelected = "";
            for (int i = 0; i < gridView1.RowCount; i++)
            {
                value = gridView1.GetDataRow(i)["check"].ToString();
                if (value == "True")
                {
                    strSelected += gridView1.GetRowCellValue(i, "potstuid");
                    strSelected += ",";        
                }             
            }
            MessageBox.Show("刪除學生信息成功");
            strSelected = strSelected.Remove(strSelected.LastIndexOf(","), 1); //刪除最後一個逗號
           
            potential.DeleteItem(strSelected);
            GetVacationList(GetCondition(), out pageCount);
        }
        /// <summary>
        /// 選中的行數
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gridView1_Click(object sender, EventArgs e)
        {
            //獲取這一行
            int row = this.gridView1.FocusedRowHandle;
            //沒有選中
            if (row < 0)
                return;
            pronum = Convert.ToInt32(this.gridView1.GetRowCellValue(row, "potstuid"));
            lbl_potentialid.Text = pronum.ToString();
            this.txe_potstuname.Text = this.gridView1.GetRowCellValue(row, "stuname").ToString();
            this.txe_potstupho.Text = this.gridView1.GetRowCellValue(row, "stupho").ToString();
            this.txe_potstuparentpho.Text = this.gridView1.GetRowCellValue(row, "stuparentpho").ToString();
            this.txe_potstuadress.EditValue = this.gridView1.GetRowCellValue(row, "stuadress").ToString();
            this.txe_potsturemarks.EditValue = this.gridView1.GetRowCellValue(row, "sturemarks").ToString();
            
        }
        public void GetVacationList(Condition condition, out int pageCount)
        {
            //新建一個數據表 
            DataTable db = potential.GetAllVacation(condition, out pageCount);
            //在表中增加一個列 add(列名,列類型)
            db.Columns.Add("check", typeof(bool));
            //給每一行的該列賦值
            for (int i = 0; i < db.Rows.Count; i++)
            {
                db.Rows[i]["check"] = "false";
            }
            this.gridControl1.DataSource = db;
        }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace TSMS.Common
{
   public  class XmlHelper
    {
       #region 對節點操作
        /// <summary>
        /// 增加一個新節點
        /// </summary>
        /// <param name="filePath">xml文件名</param>
        /// <param name="xPath"></param>
        /// <param name="xmlNode">新增加的節點</param>
        /// <returns></returns>
        public static bool AppendChild(string filePath, string xPath, XmlNode xmlNode)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                xmldoc.Load(filePath);//從xPath路徑中加載一個xml文件
                XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找匹配第一個xml節點
                XmlNode n = xmldoc.ImportNode(xmlNode, true);//把節點導入新節點
                xn.AppendChild(n);
                xmldoc.Save(filePath);
                
            }
            catch (Exception)
            {
                
                return false;
            }
            return true;
        }
        /// <summary>
        /// 刪除指定節點下所有的子節點
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="xPath"></param>
        /// <returns></returns>
        public static bool DeleteAllChild(string filePath, string xPath)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                XmlElement root = xmldoc.DocumentElement;
                xmldoc.Load(filePath);//從xPath路徑中加載一個xml文件
                XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找匹配第一個xml節點
                xn.RemoveAll();
                xmldoc.Save(filePath);
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        /// <summary>
        /// 移除指定節點的子節點 
        /// </summary>           
        /// <param name="filePath">xml文件名</param>
        /// <param name="xPath">被刪除節點的父節點xPath路徑</param>
        /// <param name="xPathChi">被刪除節點的的xPath路徑</param>
        /// <returns></returns> 
        public static bool DeleteChild(string filePath, string xPath, string xPathChi)
        {
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                XmlElement root = xmldoc.DocumentElement;
                xmldoc.Load(filePath);//從xPath路徑中加載一個xml文件
                XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找匹配第一個xml節點
                XmlNode n = xmldoc.SelectSingleNode(xPathChi);//查找匹配xml子節點
                xn.RemoveChild(n);
                xmldoc.Save(filePath);
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        #endregion    
        /// <summary>
        /// 獲取指定路徑節點中所有子節點的值
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="xPath"></param>
        /// <returns></returns>
       public static List<string> GetListValues(string filePath, string xPath)
        {   List<string> list = new List<string>();
            try
            {
                XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
                xmldoc.Load(filePath);
                XmlNode xn = xmldoc.SelectSingleNode(xPath);
                XmlElement newNode = (XmlElement)xn;//要讀取的節點轉換爲元素                     
                foreach (XmlNode tempNode in newNode)
                {
                    XmlNode Node = tempNode.ChildNodes[0];
                    string nodeName = Node.InnerText;//取子節點的值
                    string u = nodeName;
                    list.Add(u);
                }
            }
            catch (Exception)
            {
                return null;
            }
            return list;
        }
       /// <summary>
       /// 獲取指定節點的指定屬性
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="xPath"></param>
       /// <param name="attName">屬性集合</param>
       /// <returns></returns>
       public static List<string> GetListAttribute(string filePath, string xPath,params string[] attName)
       {
           List<string> list = new List<string>();
           try
           {
               XmlDocument xmldoc = new XmlDocument();//實例化一個xml文件類
               xmldoc.Load(filePath);
               XmlNode xn = xmldoc.SelectSingleNode(xPath);
               XmlElement newNode = (XmlElement)xn;//要讀取的節點轉換爲元素                  
               for (int i = 0; i < attName.Length; i++)
               {
                   string stratt = newNode.GetAttribute(attName[i]);
                   list.Add(stratt);
               }
           }
           catch (Exception)
           {
               
               return null;
           }
           return list;
       }     
       /// <summary>
       /// 給節點增加(修改)屬性
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="xPath"></param>
       /// <param name="attName">string</param>
       /// <param name="attValue">string</param>
       /// <returns></returns>
       public static bool UpdateAttribute(string filePath, string xPath,string attName, string attValue)
       {
           try
           {
               XmlDocument xmldoc = new XmlDocument();//實例化xml文件
               xmldoc.Load(filePath);//根據路徑加載xml文件
               XmlNode xn = xmldoc.SelectSingleNode(xPath);//查找一個xml節點         
               XmlAttribute xa = xmldoc.CreateAttribute(attName);
               xa.InnerText = attValue;
               xn.Attributes.Append(xa);
               xmldoc.Save(filePath);
           }
           catch (Exception)
           {
               return false;
           }
           return true;
       }
       /// <summary>
       /// 刪除指定名稱的屬性
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="attName">節點名稱</param>
       /// <returns></returns>
       public static bool DeleteAttribute(string filePath,string attName)
       {
           try
           {
               XmlDocument doc = new XmlDocument();
               doc.Load(filePath);
               XmlElement root = doc.DocumentElement;//獲取根節點
               XmlNodeList nodelist = root.ChildNodes;//獲取所有節點列表
               XmlNode node = null;
               foreach (XmlNode tempNode in nodelist)
               {
                   if (tempNode.NodeType == XmlNodeType.Element)
                   {
                       if (tempNode.ChildNodes[0].InnerText == attName)
                       {
                           node = tempNode;
                           break;
                       }
                   }
               }
               if (node != null)
               {
                   root.RemoveChild(node);
                   doc.Save(filePath);
               }
           }
           catch (Exception)
           {
               return false;
           }
           return true;
       }    
       /// <summary>
       /// 更新(增加 修改)節點內容
       /// </summary>
       /// <param name="filePath"></param>
       /// <param name="xPath"></param>
       /// <param name="value"></param>
       /// <returns></returns>
       public static bool UpateNodeInnerText(string filePath, string xPath, string value)
       {
           try
           {
               XmlDocument doc = new XmlDocument();
               doc.Load(filePath);
               XmlNode xn = doc.SelectSingleNode(xPath);//根據路徑選擇節點
               XmlElement xe = (XmlElement)xn;
               xe.InnerText = value;
               doc.Save(filePath);
           }
           catch (Exception)
           {
               return false;
           }
           return true;
       }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace TSMS.Common
{
    /// <summary>
    /// 負責對於ADO.NET的封裝。
    /// </summary>
    public class SqlHelper : AbstractSqlHelper
    {
        /// <summary>
        /// 執行非查詢
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override bool ExecuteNonQurey(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype, parameters);
            int reuslt =cmd.ExecuteNonQuery();
            CloseConnection();
            return reuslt > 0 ? true : false;
        }
        /// <summary>
        /// 獲取數據表
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override DataTable GetDataTable(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype, parameters);     
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet dataset = new DataSet();
            sda.Fill(dataset);
            return dataset.Tables[0];              
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override object GetSingleData(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype,parameters);
            object o = cmd.ExecuteScalar();
            CloseConnection();
            return o;
        }
        /// <summary>
        /// 獲取數據流
        /// </summary>
        /// <param name="sql"></param>      
        public override SqlDataReader GetDataReader(string sql,CommandType cmdtype, params SqlParameter[] parameters)
        {  
            SqlCommand cmd = GetCommand(sql,cmdtype, parameters);
            SqlDataReader sdr = cmd.ExecuteReader();
            CloseConnection();
            return sdr;
        }
        /// <summary>
        ///獲取緩存中數據表
        /// </summary>
        public override DataSet GetDataSet(string sql, CommandType cmdtype, params SqlParameter[] parameters)
        {
           
            SqlCommand cmd = GetCommand(sql,cmdtype ,parameters);          
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet dataset = new DataSet();
            sda.Fill(dataset);
            return dataset;  
        }
        public override DataSet GetDataSet(string sql, CommandType cmdtype, List<SqlParameter> list)
        {
            SqlCommand cmd = GetCommand(sql, cmdtype,list);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds;
        }
    }
}


using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Configuration;
namespace TSMS.Common
{ //定義一個抽象類
    public abstract class AbstractSqlHelper
    {   
        private SqlConnection conn = null;//初始化一個sql連接
        /// <summary>
        /// 獲取連接字符串並打開
        /// </summary>
        public void GetConnection()
        {   //private static string conStr = ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString;
            string strCon = ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString;
            conn = new SqlConnection(strCon);
            conn.Open();
            if (conn.State!=ConnectionState.Open)
            {
                conn.Close();
                conn.Dispose();
            }
        }
        /// <summary>
        /// 關閉連接
        /// </summary>
        public void CloseConnection()
        {
            if (conn!=null)
            {
                conn.Close();
                conn.Dispose();
            }
        }
        /// <summary>
        /// 設置需要執行的存儲過程或語句
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="pars"></param>
        /// <returns></returns>
        #region 設置需要執行的存儲過程或語句
        public SqlCommand GetCommand(string sql, CommandType cmdtype, params SqlParameter[] pars)
        {
            GetConnection();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandType = cmdtype;
            cmd.CommandText = sql;
            if (pars != null)
            {
                cmd.Parameters.AddRange(pars);
            }
            return cmd;
        }
        public SqlCommand GetCommand(string sql, CommandType cmdtype, List<SqlParameter> pars)
        {
            GetConnection();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandType = cmdtype;
            cmd.CommandText = sql;
            foreach (SqlParameter s in pars)
            {
                cmd.Parameters.Add(s);
            }
            return cmd;
        } 
        #endregion
        /// <summary>
        /// 執行非查詢
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public abstract bool ExecuteNonQurey(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        /// <summary>
        /// 查詢表通過參數
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns>DataSet</returns>
        public abstract DataSet GetDataSet(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        /// <summary>
        /// 查詢表通過list泛型集合
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public abstract DataSet GetDataSet(string sql, CommandType cmdtype, List<SqlParameter> list);
        /// <summary>
        ///  查詢表通過參數
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="cmdtype"></param>
        /// <param name="parameters"></param>
        /// <returns>DataTable</returns>
        public abstract DataTable GetDataTable(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        public abstract object GetSingleData(string sql, CommandType cmdtype, params SqlParameter[] parameters);
        public abstract SqlDataReader GetDataReader(string sql,CommandType cmdtype,params SqlParameter[] parameters);
   
    }
} 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Linq;
namespace TSMS.Common
{
    public  class Com
    {   //檢查是否爲整數
        public bool CheckInt(string str)
        {        
         int num;
         return int.TryParse(str, out num);           
        }
     
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using DevExpress.XtraPrinting;
namespace TSMS.WFCL
{
    public partial class UCpaging : UserControl
    {
        //定義一個分頁的事件
        public event EventHandler<PageEventArgs> PageEvent;
        public int pageCount = 0; //默認總頁數
        public int pageIndex = 1; //默認顯示頁數
        public UCpaging()
        {
            InitializeComponent();
            SibIsEnable();
            
        }
      
        public class PageEventArgs : EventArgs
        {
            private int pageSize;
            private int pageIndex;
            public int PageSize
            {
                get { return pageSize; }
                set { pageSize = value; }
            }
            public int PageIndex
            {
                get { return pageIndex; }
                set { pageIndex = value; }
            }
        }
        /// <summary>
        /// 首頁
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_homepage_Click(object sender, EventArgs e)
        {
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pargs.PageIndex = 1;
                pageIndex = pargs.PageIndex;
                this.txe_nowpage.Text = "1";
                this.lbl_nowpage.Text = "/" + pageCount + "頁";
                SibIsEnable();
                PageEvent(sender, pargs);
            }
        }
        /// <summary>
        /// 上一頁
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_propage_Click(object sender, EventArgs e)
        {
            PageEventArgs pargs = new PageEventArgs();
            pageIndex = pageIndex == 1 ? pageIndex : pageIndex - 1;
            pargs.PageIndex = pageIndex;
            this.txe_nowpage.Text = pageIndex.ToString();
            this.lbl_nowpage.Text = "/" + pageCount + "頁";
            PageEvent(sender, pargs);
            SibIsEnable();
        }
        /// <summary>
        /// 下一頁
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sim_nextpage_Click(object sender, EventArgs e)
        {
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pageIndex = pageIndex == pageCount ? pageCount : pageIndex + 1;
                pargs.PageIndex = pageIndex;
                this.txe_nowpage.Text = pageIndex.ToString();
                this.lbl_nowpage.Text = "/" + pageCount + "頁";
                PageEvent(sender, pargs);
                SibIsEnable();
            }
        }
        /// <summary>
        /// 末頁
        /// </summary> <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_endpage_Click(object sender, EventArgs e)
        {
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pargs.PageIndex = pageCount;
                pageIndex = pageCount;
                this.txe_nowpage.Text = pageCount.ToString();
                this.lbl_nowpage.Text = "/" + pageCount + "頁";
                SibIsEnable();
                PageEvent(sender, pargs);
            }
        }
        /// <summary>
        /// 跳轉
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sib_jump_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(this.txe_nowpage.Text.ToString())==0)
            {
               this.txe_nowpage.Text= "1";
            }
            if (PageEvent != null)
            {
                PageEventArgs pargs = new PageEventArgs();
                pageIndex = Convert.ToInt32(this.txe_nowpage.Text.ToString());
                pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
                pargs.PageIndex = pageIndex;
                PageEvent(sender, pargs);
                SibIsEnable();
            }
        }
        public void SibIsEnable()
        {
            #region 分頁按鈕是否可用
            this.lbl_nowpage.Text = "/" + pageCount + "頁";
            if (pageIndex <= 1)
            {
                sib_homepage.Enabled = false;
                sib_endpage.Enabled = true;
                sib_prepage.Enabled = false;
                sib_nextpage.Enabled = true;
            }
            else if (pageIndex >= pageCount)
            {
                sib_homepage.Enabled = true;
                sib_endpage.Enabled = false;
                sib_prepage.Enabled = true;
                sib_nextpage.Enabled = false;
            }
            else
            {
                sib_homepage.Enabled = true;
                sib_endpage.Enabled = true;
                sib_prepage.Enabled = true;
                sib_nextpage.Enabled = true;
            }
            #endregion
        }
        private void UCpaging_Load(object sender, EventArgs e)
        {
            this.lbl_nowpage.Text = "/" + pageCount + "頁";
            this.txe_nowpage.Text = pageIndex.ToString();
            SibIsEnable();
        }
        #region 文本框限制輸入
        //private string pattern = @"^[0-9]*$";
        ////private string param1 = null;
        //private void txe_nowpage_EditValueChanged(object sender, EventArgs e)
        //{
        //    Match m = Regex.Match(this.txe_nowpage.Text, pattern); // 匹配正則表達式
        //    if (!m.Success) // 輸入的不是數字
        //    {
        //        this.txe_nowpage.Text = null; //textBox內容清空
        //        // 將光標定位到文本框的最後
        //        //this.txe_nowpage.SelectionStart = this.txe_nowpage.Text.Length;
        //    }
        //    //else // 輸入的是數字
        //    //{
        //    //    param1 = this.txe_nowpage.Text; // 將現在textBox的值保存下
        //    //}
        //} 
        #endregion
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章