源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Winform中GridView分组排序功能实现方法

  • 时间:2022-07-01 21:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Winform中GridView分组排序功能实现方法
本文实例讲述了Winform中GridView分组排序功能实现方法。分享给大家供大家参考。具体实现方法如下: [b]一、问题:[/b] 由于客户最近要扩充公司的业务,之前基于Winform+web开发混合式的系统已经不能满足他们的需求,需要从新对系统进行分区处理。 考虑到系统模块里面用到的GridView视图比较多,我就结合了DevExpress第三方GridControl简单的写了个Demo,对数据进行分组排序。 [b]二、实现方法:[/b] 主程序源码:
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevExpress.XtraGrid.Columns; using DevExpress.Data; namespace GridViewSortTest {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         private void Form1_Load(object sender, EventArgs e)         {             InitLoad();             #region 分组排序代码             GridColumnSortInfo[] sortInfo = {                 new GridColumnSortInfo(gdvSort.Columns["GET_YEAR"], ColumnSortOrder.Ascending),                 new GridColumnSortInfo(gdvSort.Columns["ID"], ColumnSortOrder.Descending),                                  };             gdvSort.SortInfo.ClearAndAddRange(sortInfo,1);             #endregion         }         /// <summary>         /// 初始化GirdControl数据         /// </summary>         private void InitLoad()         {            gdcSort.DataSource= DBHelp.GetTable(string.Format(@"SELECT ID,NAME,GET_YEAR,                         URL_ADRRESS  FROM  TB_SORT_TEST"));         }         /// <summary>         /// GirdView单击事件         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void gdvSort_Click(object sender, EventArgs e)         {             if (gdvSort.FocusedColumn.FieldName.Equals(@"NAME") && gdvSort.GetFocusedRowCellValue("NAME") != null)             {                 string url = gdvSort.GetFocusedRowCellValue("URL_ADRRESS").ToString()+                     gdvSort.GetFocusedRowCellValue("GET_YEAR").ToString() +                     MonthToString(int.Parse(gdvSort.GetFocusedRowCellValue("ID").ToString())) +                     gdvSort.GetFocusedRowCellValue("NAME").ToString()+".html";                 webBrowser.Navigate(url);             }         }         /// <summary>         /// 月份转换成字符串         /// </summary>         /// <param name="month"></param>         /// <returns></returns>         private string MonthToString(int month)         {             if (month >= 1 && month <= 9)                 return "0" + month.ToString();             else                 return month.ToString();         }     } }
DBHelp类源码:
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace GridViewSortTest {   public class DBHelp     {         //连接字符串       static string strConn =@"Server=.\SQLEXPRESS; Database= SysBusiness; User Id=sa; Password=123456;Trusted_Connection = False ";         #region 执行查询,返回DataTable对象-----------------------         public static DataTable GetTable(string strSQL)         {             return GetTable(strSQL, null);         }         public static DataTable GetTable(string strSQL, SqlParameter[] pas)         {             return GetTable(strSQL, pas, CommandType.Text);         }         /// <summary>         /// 执行查询,返回DataTable对象         /// </summary>         /// <param name="strSQL">sql语句</param>         /// <param name="pas">参数数组</param>         /// <param name="cmdtype">Command类型</param>         /// <returns>DataTable对象</returns>         public static DataTable GetTable(string strSQL, SqlParameter[] pas, CommandType cmdtype)         {             DataTable dt = new DataTable(); ;             using (SqlConnection conn = new SqlConnection(strConn))             {                 SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);                 da.SelectCommand.CommandType = cmdtype;                 if (pas != null)                 {                     da.SelectCommand.Parameters.AddRange(pas);                 }                 da.Fill(dt);             }             return dt;         }         #endregion         #region 执行查询,返回DataSet对象-------------------------         public static DataSet GetDataSet(string strSQL)         {             return GetDataSet(strSQL, null);         }         public static DataSet GetDataSet(string strSQL, SqlParameter[] pas)         {             return GetDataSet(strSQL, pas, CommandType.Text);         }         /// <summary>         /// 执行查询,返回DataSet对象         /// </summary>         /// <param name="strSQL">sql语句</param>         /// <param name="pas">参数数组</param>         /// <param name="cmdtype">Command类型</param>         /// <returns>DataSet对象</returns>         public static DataSet GetDataSet(string strSQL, SqlParameter[] pas, CommandType cmdtype)         {             DataSet dt = new DataSet(); ;             using (SqlConnection conn = new SqlConnection(strConn))             {                 SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);                 da.SelectCommand.CommandType = cmdtype;                 if (pas != null)                 {                     da.SelectCommand.Parameters.AddRange(pas);                 }                 da.Fill(dt);             }             return dt;         }         #endregion         #region 执行非查询存储过程和SQL语句-----------------------------         public static int ExcuteProc(string ProcName)         {             return ExcuteSQL(ProcName, null, CommandType.StoredProcedure);         }         public static int ExcuteProc(string ProcName, SqlParameter[] pars)         {             return ExcuteSQL(ProcName, pars, CommandType.StoredProcedure);         }         public static int ExcuteSQL(string strSQL)         {             return ExcuteSQL(strSQL, null);         }         public static int ExcuteSQL(string strSQL, SqlParameter[] paras)         {             return ExcuteSQL(strSQL, paras, CommandType.Text);         }         /// 执行非查询存储过程和SQL语句         /// 增、删、改         /// </summary>         /// <param name="strSQL">要执行的SQL语句</param>         /// <param name="paras">参数列表,没有参数填入null</param>         /// <param name="cmdType">Command类型</param>         /// <returns>返回影响行数</returns>         public static int ExcuteSQL(string strSQL, SqlParameter[] paras, CommandType cmdType)         {             int i = 0;             using (SqlConnection conn = new SqlConnection(strConn))             {                 SqlCommand cmd = new SqlCommand(strSQL, conn);                 cmd.CommandType = cmdType;                 if (paras != null)                 {                     cmd.Parameters.AddRange(paras);                 }                 conn.Open();                 i = cmd.ExecuteNonQuery();                 conn.Close();             }             return i;         }         #endregion         #region 执行查询返回第一行,第一列---------------------------------         public static int ExcuteScalarSQL(string strSQL)         {             return ExcuteScalarSQL(strSQL, null);         }         public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras)         {             return ExcuteScalarSQL(strSQL, paras, CommandType.Text);         }         public static int ExcuteScalarProc(string strSQL, SqlParameter[] paras)         {             return ExcuteScalarSQL(strSQL, paras, CommandType.StoredProcedure);         }         /// <summary>         /// 执行SQL语句,返回第一行,第一列         /// </summary>         /// <param name="strSQL">要执行的SQL语句</param>         /// <param name="paras">参数列表,没有参数填入null</param>         /// <returns>返回影响行数</returns>         public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras, CommandType cmdType)         {             int i = 0;             using (SqlConnection conn = new SqlConnection(strConn))             {                 SqlCommand cmd = new SqlCommand(strSQL, conn);                 cmd.CommandType = cmdType;                 if (paras != null)                 {                     cmd.Parameters.AddRange(paras);                 }                 conn.Open();                 i = Convert.ToInt32(cmd.ExecuteScalar());                 conn.Close();             }             return i;         }         #endregion         #region 查询获取单个值------------------------------------         /// <summary>         /// 调用不带参数的存储过程获取单个值         /// </summary>         /// <param name="ProcName"></param>         /// <returns></returns>         public static object GetObjectByProc(string ProcName)         {             return GetObjectByProc(ProcName, null);         }         /// <summary>         /// 调用带参数的存储过程获取单个值         /// </summary>         /// <param name="ProcName"></param>         /// <param name="paras"></param>         /// <returns></returns>         public static object GetObjectByProc(string ProcName, SqlParameter[] paras)         {             return GetObject(ProcName, paras, CommandType.StoredProcedure);         }         /// <summary>         /// 根据sql语句获取单个值         /// </summary>         /// <param name="strSQL"></param>         /// <returns></returns>         public static object GetObject(string strSQL)         {             return GetObject(strSQL, null);         }         /// <summary>         /// 根据sql语句 和 参数数组获取单个值         /// </summary>         /// <param name="strSQL"></param>         /// <param name="paras"></param>         /// <returns></returns>         public static object GetObject(string strSQL, SqlParameter[] paras)         {             return GetObject(strSQL, paras, CommandType.Text);         }         /// <summary>         /// 执行SQL语句,返回首行首列         /// </summary>         /// <param name="strSQL">要执行的SQL语句</param>         /// <param name="paras">参数列表,没有参数填入null</param>         /// <returns>返回的首行首列</returns>         public static object GetObject(string strSQL, SqlParameter[] paras, CommandType cmdtype)         {             object o = null;             using (SqlConnection conn = new SqlConnection(strConn))             {                 SqlCommand cmd = new SqlCommand(strSQL, conn);                 cmd.CommandType = cmdtype;                 if (paras != null)                 {                     cmd.Parameters.AddRange(paras);                 }                 conn.Open();                 o = cmd.ExecuteScalar();                 conn.Close();             }             return o;         }         #endregion         #region 查询获取DataReader------------------------------------         /// <summary>         /// 调用不带参数的存储过程,返回DataReader对象         /// </summary>         /// <param name="procName">存储过程名称</param>         /// <returns>DataReader对象</returns>         public static SqlDataReader GetReaderByProc(string procName)         {             return GetReaderByProc(procName, null);         }         /// <summary>         /// 调用带有参数的存储过程,返回DataReader对象         /// </summary>         /// <param name="procName">存储过程名</param>         /// <param name="paras">参数数组</param>         /// <returns>DataReader对象</returns>         public static SqlDataReader GetReaderByProc(string procName, SqlParameter[] paras)         {             return GetReader(procName, paras, CommandType.StoredProcedure);         }         /// <summary>         /// 根据sql语句返回DataReader对象         /// </summary>         /// <param name="strSQL">sql语句</param>         /// <returns>DataReader对象</returns>         public static SqlDataReader GetReader(string strSQL)         {             return GetReader(strSQL, null);         }         /// <summary>         /// 根据sql语句和参数返回DataReader对象         /// </summary>         /// <param name="strSQL">sql语句</param>         /// <param name="paras">参数数组</param>         /// <returns>DataReader对象</returns>         public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras)         {             return GetReader(strSQL, paras, CommandType.Text);         }         /// <summary>         /// 查询SQL语句获取DataReader         /// </summary>         /// <param name="strSQL">查询的SQL语句</param>         /// <param name="paras">参数列表,没有参数填入null</param>         /// <returns>查询到的DataReader(关闭该对象的时候,自动关闭连接)</returns>         public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras, CommandType cmdtype)         {             SqlDataReader sqldr = null;             SqlConnection conn = new SqlConnection(strConn);             SqlCommand cmd = new SqlCommand(strSQL, conn);             cmd.CommandType = cmdtype;             if (paras != null)             {                 cmd.Parameters.AddRange(paras);             }             conn.Open();             //CommandBehavior.CloseConnection的作用是如果关联的DataReader对象关闭,则连接自动关闭             sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);             return sqldr;         }         #endregion         #region 批量插入数据---------------------------------------------         /// <summary>         /// 往数据库中批量插入数据         /// </summary>         /// <param name="sourceDt">数据源表</param>         /// <param name="targetTable">服务器上目标表</param>         public static void BulkToDB(DataTable sourceDt, string targetTable)         {             SqlConnection conn = new SqlConnection(strConn);             SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);   //用其它源的数据有效批量加载sql server表中             bulkCopy.DestinationTableName = targetTable;    //服务器上目标表的名称             bulkCopy.BatchSize = sourceDt.Rows.Count;   //每一批次中的行数             try             {                 conn.Open();                 if (sourceDt != null && sourceDt.Rows.Count != 0)                     bulkCopy.WriteToServer(sourceDt);   //将提供的数据源中的所有行复制到目标表中             }             catch (Exception ex)             {                 throw ex;             }             finally             {                 conn.Close();                 if (bulkCopy != null)                     bulkCopy.Close();             }         }         #endregion     } }
最终显示效果图如下: [img]http://files.jb51.net/file_images/article/201411/20141122155109554.png?20141022155128[/img] 希望本文所述对大家的C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部