欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分享C#中幾個可用的類

 更新時間:2016年05月11日 10:52:30   作者:天盡頭的那片海  
這篇文章主要為大家分享了C#中幾個可用的類,并給出了幾個例子進行講解,感興趣的小伙伴們可以參考一下

本文實例為大家介紹了幾個可用的類,供大家參考,具體內容如下

1.SQLHelper類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

using System.Configuration;
namespace MySchool.DAL
{
 public static class SQLHelper
 {
 //用靜態(tài)的方法調用的時候不用創(chuàng)建SQLHelper的實例
 //Execetenonquery
 // public static string Constr = "server=HAPPYPIG\\SQLMODEL;database=shooltest;uid=sa;";
 public static string Constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
 public static int id;
 /// <summary>
 /// 執(zhí)行NonQuery命令
 /// </summary>
 /// <param name="cmdTxt"></param>
 /// <param name="parames"></param>
 /// <returns></returns>
 public static int ExecuteNonQuery(string cmdTxt, params SqlParameter[] parames)
 {
 return ExecuteNonQuery(cmdTxt, CommandType.Text, parames);
 }
 //可以使用存儲過程的ExecuteNonquery
 public static int ExecuteNonQuery(string cmdTxt, CommandType cmdtype, params SqlParameter[] parames)
 {
 //判斷腳本是否為空 ,直接返回0
 if (string.IsNullOrEmpty(cmdTxt))
 {
 return 0;
 }
 using (SqlConnection con = new SqlConnection(Constr))
 {
 using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
 {
  if (parames != null)
  {
  cmd.CommandType = cmdtype;
  cmd.Parameters.AddRange(parames);
  }
  con.Open();
  return cmd.ExecuteNonQuery();
 }
 }
 }
 public static SqlDataReader ExecuteDataReader(string cmdTxt, params SqlParameter[] parames)
 {
 return ExecuteDataReader(cmdTxt, CommandType.Text, parames);
 }
 //SQLDataReader存儲過程方法
 public static SqlDataReader ExecuteDataReader(string cmdTxt, CommandType cmdtype, params SqlParameter[] parames)
 {
 if (string.IsNullOrEmpty(cmdTxt))
 {
 return null;
 }
 SqlConnection con = new SqlConnection(Constr);

 using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
 {
 cmd.CommandType = cmdtype;
 if (parames != null)
 {
  
  cmd.Parameters.AddRange(parames);
 }
 con.Open();
 //把reader的行為加進來。當reader釋放資源的時候,con也被一塊關閉
 return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
 }

 }
 public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parames)
 {
 return ExecuteDataTable(sql, CommandType.Text, parames);
 }
 //調用存儲過程的類,關于(ExecuteDataTable)
 public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] parames)
 {
 if (string.IsNullOrEmpty(sql))
 {
 return null;
 }
 DataTable dt = new DataTable();
 using (SqlDataAdapter da = new SqlDataAdapter(sql, Constr))
 {
 da.SelectCommand.CommandType = cmdType;
 if (parames != null)
 {
  da.SelectCommand.Parameters.AddRange(parames);
 }
 da.Fill(dt);
 return dt;
 }
 }
 
 /// <summary>
 /// ExecuteScalar
 /// </summary>
 /// <param name="cmdTxt">第一個參數(shù),SQLServer語句</param>
 /// <param name="parames">第二個參數(shù),傳遞0個或者多個參數(shù)</param>
 /// <returns></returns>
 public static object ExecuteScalar(string cmdTxt, params SqlParameter[] parames)
 {
 return ExecuteScalar(cmdTxt, CommandType.Text, parames);
 } 
 //可使用存儲過程的ExecuteScalar
 public static object ExecuteScalar(string cmdTxt, CommandType cmdtype, params SqlParameter[] parames)
 {
 if (string.IsNullOrEmpty(cmdTxt))
 {
 return null;
 }
 using (SqlConnection con = new SqlConnection(Constr))
 {
 using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
 {
  cmd.CommandType = cmdtype;
  if (parames != null)
  {
  cmd.Parameters.AddRange(parames);
  }
  con.Open();
 return cmd.ExecuteScalar();
 }
 }
 
 }
 //調用存儲過程的DBHelper類(關于ExeceutScalar,包含事務,只能處理Int類型,返回錯誤號)
 public static object ExecuteScalar(string cmdTxt, CommandType cmdtype,SqlTransaction sqltran, params SqlParameter[] parames)
 {
 if (string.IsNullOrEmpty(cmdTxt))
 {
 return 0;
 }
 using (SqlConnection con = new SqlConnection(Constr))
 {
 int sum = 0;
 using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
 {
  cmd.CommandType=cmdtype;
  if (parames != null)
  {
  cmd.Parameters.AddRange(parames);
  }
  con.Open();
  sqltran = con.BeginTransaction();
  try
  {
  cmd.Transaction = sqltran;
  sum=Convert.ToInt32( cmd.ExecuteScalar());
  sqltran.Commit();
  }
  catch (SqlException ex)
  {
  sqltran.Rollback();
  }
  return sum;
 }
 }
 }
 }
}

例如:

 //以返回表的方式加載下拉框
 public DataTable LoadCombox()
 {
 string sql = "select * from Grade";
 DataTable dt = SQLHelper.ExecuteDataTable(sql);
 return dt;
 }

2.MyTool類(DataTable轉List<>)

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace MySchool.DAL
{
 public class MyTool
 {
 /// <summary>
 /// DataSetToList
 /// </summary>
 /// <typeparam name="T">轉換類型</typeparam>
 /// <param name="dataSet">數(shù)據(jù)源</param>
 /// <param name="tableIndex">需要轉換表的索引</param>
 /// <returns></returns>
 public List<T> DataTableToList<T>(DataTable dt)
 {
 //確認參數(shù)有效
 if (dt == null )
 return null;
 List<T> list = new List<T>();

 for (int i = 0; i < dt.Rows.Count; i++)
 {
 //創(chuàng)建泛型對象
 T _t = Activator.CreateInstance<T>();
 //獲取對象所有屬性
 PropertyInfo[] propertyInfo = _t.GetType().GetProperties();
 for (int j = 0; j < dt.Columns.Count; j++)
 {
  foreach (PropertyInfo info in propertyInfo)
  {
  //屬性名稱和列名相同時賦值
  if (dt.Columns[j].ColumnName.ToUpper().Equals(info.Name.ToUpper()))
  {
  if (dt.Rows[i][j] != DBNull.Value)
  {
  info.SetValue(_t, dt.Rows[i][j], null);
  }
  else
  {
  info.SetValue(_t, null, null);
  }
  break;
  }
  }
 }
 list.Add(_t);
 }
 return list;
 }
 }
}

例如: 

 public List<Grade> Loadcombox2() 
 {
 string sql = "select * from Grade";
 DataTable dt = SQLHelper.ExecuteDataTable(sql);
 //方法一:
 foreach (DataRow row in dt.Rows)
 {
  //每一個row代表表中的一行,所以一行對應一個年級對象
  Grade grade = new Grade();
  grade.GradeId = Convert.ToInt32(row["gradeid"]);
  grade.GradeName = row["gradename"].ToString();
  list.Add(grade);
 }

 //方法二:(使用MyTool類)
 MyTool tool=new MyTool();
 list = tool.DataTableToList<Grade>(dt);
 return list;
 }

3.DGMsgDiv類(可生成自己的控件) 

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

/// <summary>
/// 消息條回調函數(shù)委托
/// </summary>
public delegate void DGMsgDiv();
 /// <summary>
 /// 消息條類 帶Timer計時
 /// </summary>
public class MsgDiv : System.Windows.Forms.Label
{
 private Timer timerLable = new Timer();
 /// <summary>
 /// 消息回調 委托對象
 /// </summary>
 private DGMsgDiv dgCallBack = null;

 #region 計時器
 /// <summary>
 /// 計時器
 /// </summary>
 public Timer TimerMsg
 {
 get { return timerLable; }
 set { timerLable = value; }
 } 
 #endregion

 #region MsgDiv構造函數(shù)
 /// <summary>
 /// MsgDiv構造函數(shù)
 /// </summary>
 public MsgDiv()
 {
 InitallMsgDiv(7, 7);
 }

 /// <summary>
 /// MsgDiv構造函數(shù)
 /// </summary>
 /// <param name="x">定位x軸坐標</param>
 /// <param name="y">定位y軸坐標</param>
 public MsgDiv(int x, int y)
 {
 InitallMsgDiv(x, y);
 }
 #endregion

 #region 初始化消息條
 /// <summary>
 /// 初始化消息條
 /// </summary>
 private void InitallMsgDiv(int x, int y)
 {
 this.AutoSize = true;
 this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
 this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
 //this.ContextMenuStrip = this.cmsList;
 this.Font = new System.Drawing.Font("宋體", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
 this.ForeColor = System.Drawing.Color.Red;
 this.Location = new System.Drawing.Point(x, y);
 this.MaximumSize = new System.Drawing.Size(980, 525);
 this.Name = "msgDIV";
 this.Padding = new System.Windows.Forms.Padding(7);
 this.Size = new System.Drawing.Size(71, 31);
 this.TabIndex = 1;
 this.Text = "消息條";
 this.Visible = false;
 //給委托添加事件
 this.DoubleClick += new System.EventHandler(this.msgDIV_DoubleClick);
 this.MouseLeave += new System.EventHandler(this.msgDIV_MouseLeave);
 this.MouseHover += new System.EventHandler(this.msgDIV_MouseHover);
 this.timerLable.Interval = 1000;
 this.timerLable.Tick += new System.EventHandler(this.timerLable_Tick);
 }
 #endregion

 #region 將消息條添加到指定容器上
 /// <summary>
 /// 將消息條添加到指定容器上Form
 /// </summary>
 /// <param name="form"></param>
 public void AddToControl(Form form)
 {
 form.Controls.Add(this);
 }
 /// <summary>
 /// 將消息條添加到指定容器上GroupBox
 /// </summary>
 /// <param name="form"></param>
 public void AddToControl(GroupBox groupBox)
 {
 groupBox.Controls.Add(this);
 }
 /// <summary>
 /// 將消息條添加到指定容器上Panel
 /// </summary>
 /// <param name="form"></param>
 public void AddToControl(Panel panel)
 {
 panel.Controls.Add(this);
 }
 #endregion

 //---------------------------------------------------------------------------
 #region 消息顯示 的相關參數(shù)們 hiddenClick,countNumber,constCountNumber
 /// <summary>
 /// 當前顯示了多久的秒鐘數(shù)
 /// </summary>
 int hiddenClick = 0;
 /// <summary>
 /// 要顯示多久的秒鐘數(shù) 可變參數(shù)
 /// </summary>
 int countNumber = 3;
 /// <summary>
 /// 要顯示多久的秒鐘數(shù) 固定參數(shù)
 /// </summary>
 int constCountNumber = 3; 
 #endregion

 #region 計時器 顯示countNumber秒鐘后自動隱藏div -timerLable_Tick(object sender, EventArgs e)
 private void timerLable_Tick(object sender, EventArgs e)
 {
 if (hiddenClick > countNumber - 2)
 {
 MsgDivHidden();
 }
 else
 {
 hiddenClick++;
 //RemainCount();
 }
 } 
 #endregion

 #region 隱藏消息框 并停止計時 +void MsgDivHidden()
 /// <summary>
 /// 隱藏消息框 并停止計時
 /// </summary>
 public void MsgDivHidden()
 {
 this.Text = "";
 this.Visible = false;
 this.hiddenClick = 0;
 //this.tslblRemainSecond.Text = "";
 if (this.timerLable.Enabled == true)
 this.timerLable.Stop();

 //調用 委托 然后清空委托
 if (dgCallBack != null && dgCallBack.GetInvocationList().Length > 0)
 {
 dgCallBack();
 dgCallBack -= dgCallBack;
 }
 } 
 #endregion

 #region 在消息框中顯示消息字符串 +void MsgDivShow(string msg)
 /// <summary>
 /// 在消息框中顯示消息字符串
 /// </summary>
 /// <param name="msg">要顯示的字符串</param>
 public void MsgDivShow(string msg)
 {
 this.Text = msg;
 this.Visible = true;
 this.countNumber = constCountNumber;//默認設置顯示秒數(shù)為10;
 this.hiddenClick = 0;//重置倒數(shù)描述
 this.timerLable.Start();
 } 
 #endregion

 #region 在消息框中顯示消息字符串 并在消息消失時 調用回調函數(shù) +void MsgDivShow(string msg, DGMsgDiv callback)
 /// <summary>
 /// 在消息框中顯示消息字符串 并在消息消失時 調用回調函數(shù)
 /// </summary>
 /// <param name="msg">要顯示的字符串</param>
 /// <param name="callback">回調函數(shù)</param>
 public void MsgDivShow(string msg, DGMsgDiv callback)
 {
 MsgDivShow(msg);
 dgCallBack = callback;
 }
 #endregion

 #region 在消息框中顯示消息字符串 并在指定時間消息消失時 調用回調函數(shù) +void MsgDivShow(string msg, int seconds, DGMsgDiv callback)
 /// <summary>
 /// 在消息框中顯示消息字符串 并在消息消失時 調用回調函數(shù)
 /// </summary>
 /// <param name="msg">要顯示的字符串</param>
 /// <param name="seconds">消息顯示時間</param>
 /// <param name="callback">回調函數(shù)</param>
 public void MsgDivShow(string msg, int seconds, DGMsgDiv callback)
 {
 MsgDivShow(msg, seconds);
 dgCallBack = callback;
 } 
 #endregion

 #region 在消息框中顯示消息字符串,并指定消息框顯示秒數(shù) +void MsgDivShow(string msg, int seconds)
 /// <summary>
 /// 在消息框中顯示消息字符串,并指定消息框顯示秒數(shù)
 /// </summary>
 /// <param name="msg">要顯示的字符串</param>
 /// <param name="seconds">消息框顯示秒數(shù)</param>
 public void MsgDivShow(string msg, int seconds)
 {
 this.Text = msg;
 this.Visible = true;
 this.countNumber = seconds;
 this.hiddenClick = 0;//重置倒數(shù)描述
 this.timerLable.Start();
 } 
 #endregion

 //---------------------------------------------------------------------------
 #region 事件們~~~! msgDIV_MouseHover,msgDIV_MouseLeave,msgDIV_DoubleClick
 //當鼠標停留在div上時 停止計時
 private void msgDIV_MouseHover(object sender, EventArgs e)
 {
 if (this.timerLable.Enabled == true)
 this.timerLable.Stop();
 }
 //當鼠標從div上移開時 繼續(xù)及時
 private void msgDIV_MouseLeave(object sender, EventArgs e)
 {
 //當消息框正在顯示、回復框沒顯示、計時器正停止的時候,重新啟動計時器
 if (this.Visible == true && this.timerLable.Enabled == false)
 this.timerLable.Start();
 }
 //雙擊消息框時關閉消息框
 private void msgDIV_DoubleClick(object sender, EventArgs e)
 {
 MsgDivHidden();
 } 
 #endregion

}

例如:

 private void Form1_Load(object sender, EventArgs e)
 {
 //首先顯示“呵呵”,3秒后 調用Test方法消息框顯示“哈哈”
 msgDiv1.MsgDivShow("呵呵",3,Test);
 }

 public void Test()
 {
 MessageBox.Show("哈哈");
 }

以上就是本文的全部內容,希望對大家的學習有所幫助。

相關文章

  • C#中Activator.CreateInstance()方法用法分析

    C#中Activator.CreateInstance()方法用法分析

    這篇文章主要介紹了C#中Activator.CreateInstance()方法用法,實例分析了C#中Activator.CreateInstance()方法的功能、定義及使用技巧,需要的朋友可以參考下
    2015-03-03
  • Unity技術手冊之Slider滑動器使用實例詳解

    Unity技術手冊之Slider滑動器使用實例詳解

    這篇文章主要為大家介紹了Unity技術手冊之Slider滑動器使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • C#執(zhí)行EXE文件與輸出消息的提取操作

    C#執(zhí)行EXE文件與輸出消息的提取操作

    這篇文章主要介紹了C#執(zhí)行EXE文件與輸出消息的提取操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 基于C#編寫一個操作XML的簡單類庫XMLHelper

    基于C#編寫一個操作XML的簡單類庫XMLHelper

    這篇文章主要為大家詳細介紹了如何基于C#編寫一個操作XML的簡單類庫——XMLHelper,文中的示例代碼講解詳細,需要的小伙伴可以參考一下
    2023-06-06
  • C#串口連接的讀取和發(fā)送詳解

    C#串口連接的讀取和發(fā)送詳解

    這篇文章主要給大家介紹了關于C#串口連接的讀取和發(fā)送的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • C#生成隨機數(shù)功能示例

    C#生成隨機數(shù)功能示例

    這篇文章主要介紹了C#生成隨機數(shù)功能,涉及C#數(shù)學運算與字符串操作相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • C#中數(shù)組段用法實例分析

    C#中數(shù)組段用法實例分析

    這篇文章主要介紹了C#中數(shù)組段用法,實例分析了C#數(shù)組段的定義、功能及使用方法,需要的朋友可以參考下
    2015-05-05
  • C#實現(xiàn)刷新桌面的方法

    C#實現(xiàn)刷新桌面的方法

    這篇文章主要介紹了C#實現(xiàn)刷新桌面的方法,涉及C#基于shell32.dll動態(tài)鏈接庫實現(xiàn)系統(tǒng)桌面刷新的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 使用C#獲取網(wǎng)頁HTML源碼的例子

    使用C#獲取網(wǎng)頁HTML源碼的例子

    這篇文章主要介紹了使用C#獲取網(wǎng)頁HTML源碼的例子,考慮了區(qū)分GB2312和UTF-8編碼,需要的朋友可以參考下
    2014-08-08
  • 在Unity中實現(xiàn)動畫的正反播放代碼

    在Unity中實現(xiàn)動畫的正反播放代碼

    這篇文章主要介紹了在Unity中實現(xiàn)動畫的正反播放代碼,非常的實用,這里推薦給大家,希望大家能夠喜歡。
    2015-03-03

最新評論