国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

分享C#中幾個可用的類

2020-01-24 01:09:58
字體:
來源:轉載
供稿:網友

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

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 { //用靜態的方法調用的時候不用創建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> /// 執行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">第一個參數,SQLServer語句</param> /// <param name="parames">第二個參數,傳遞0個或者多個參數</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">數據源</param> /// <param name="tableIndex">需要轉換表的索引</param> /// <returns></returns> public List<T> DataTableToList<T>(DataTable dt) { //確認參數有效 if (dt == null ) return null; List<T> list = new List<T>(); for (int i = 0; i < dt.Rows.Count; i++) { //創建泛型對象 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>/// 消息條回調函數委托/// </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構造函數 /// <summary> /// MsgDiv構造函數 /// </summary> public MsgDiv() { InitallMsgDiv(7, 7); } /// <summary> /// MsgDiv構造函數 /// </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 消息顯示 的相關參數們 hiddenClick,countNumber,constCountNumber /// <summary> /// 當前顯示了多久的秒鐘數 /// </summary> int hiddenClick = 0; /// <summary> /// 要顯示多久的秒鐘數 可變參數 /// </summary> int countNumber = 3; /// <summary> /// 要顯示多久的秒鐘數 固定參數 /// </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;//默認設置顯示秒數為10; this.hiddenClick = 0;//重置倒數描述 this.timerLable.Start(); }  #endregion #region 在消息框中顯示消息字符串 并在消息消失時 調用回調函數 +void MsgDivShow(string msg, DGMsgDiv callback) /// <summary> /// 在消息框中顯示消息字符串 并在消息消失時 調用回調函數 /// </summary> /// <param name="msg">要顯示的字符串</param> /// <param name="callback">回調函數</param> public void MsgDivShow(string msg, DGMsgDiv callback) { MsgDivShow(msg); dgCallBack = callback; } #endregion #region 在消息框中顯示消息字符串 并在指定時間消息消失時 調用回調函數 +void MsgDivShow(string msg, int seconds, DGMsgDiv callback) /// <summary> /// 在消息框中顯示消息字符串 并在消息消失時 調用回調函數 /// </summary> /// <param name="msg">要顯示的字符串</param> /// <param name="seconds">消息顯示時間</param> /// <param name="callback">回調函數</param> public void MsgDivShow(string msg, int seconds, DGMsgDiv callback) { MsgDivShow(msg, seconds); dgCallBack = callback; }  #endregion #region 在消息框中顯示消息字符串,并指定消息框顯示秒數 +void MsgDivShow(string msg, int seconds) /// <summary> /// 在消息框中顯示消息字符串,并指定消息框顯示秒數 /// </summary> /// <param name="msg">要顯示的字符串</param> /// <param name="seconds">消息框顯示秒數</param> public void MsgDivShow(string msg, int seconds) { this.Text = msg; this.Visible = true; this.countNumber = seconds; this.hiddenClick = 0;//重置倒數描述 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上移開時 繼續及時 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("哈哈"); }

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸丰县| 黎川县| 左权县| 宜黄县| 海口市| 洞头县| 扬州市| 武清区| 隆安县| 临安市| 西乌| 裕民县| 南郑县| 通州市| 繁昌县| 阿拉善右旗| 阳信县| 石家庄市| 桐城市| 吉木萨尔县| 玉山县| 宁乡县| 麻阳| 东丽区| 汨罗市| 利津县| 隆回县| 民勤县| 孟连| 朝阳区| 宝坻区| 全州县| 承德市| 隆林| 惠水县| 涟源市| 秦安县| 灵寿县| 西宁市| 承德市| 盐亭县|