SQLhelper助手類編寫:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 using System.Data; 8 using System.Data.SqlClient; 9 using System.Configuration;10 11 namespace DAL12 {13 public class SQLHelper14 {15 SqlCommand cmd = null;16 17 public string strcon()18 {19 string strcon = ConfigurationManager.ConnectionStrings["strcon"].ConnectionString;20 21 return strcon;22 }23 24 public SqlConnection getcon()25 {26 SqlConnection con = new SqlConnection(strcon());27 28 if (con.State == ConnectionState.Closed)29 {30 con.Open();31 }32 33 return con;34 }35 36 /// <summary>37 /// 執行增刪改查的SQL語句38 /// </summary>39 /// <param name="sql">要執行的SQL</param>40 /// <returns>返回執行SQL語句后影響的行數</returns>41 public int ExecuteNonQuery(string sql)42 {43 int res;44 45 try46 {47 cmd = new SqlCommand(sql, getcon());48 49 res = cmd.ExecuteNonQuery();50 }51 catch (Exception ex)52 {53 throw ex;54 }55 finally56 {57 if (getcon().State == ConnectionState.Open)58 {59 getcon().Close();60 }61 }62 63 return res;64 }65 66 /// <summary>67 /// 執行傳入的SQL查詢語句68 /// </summary>69 /// <param name="sql">要執行的查詢SQL</param>70 /// <returns>返回查詢SQL語句的數據集</returns>71 public DataTable ExecuteQuery(string sql)72 {73 DataTable dt = new DataTable();74 75 SqlConnection con = new SqlConnection(strcon());76 77 //創建一個SqlCommand對象cmd,讓其連接數據庫,并指向sql語句。78 cmd = new SqlCommand(sql, getcon());79 80 //執行cmd連接的數據庫.使用using后在執行完畢后,直接關閉sdr。不需要寫sdr.closed.81 using (SqlDataReader sdr = cmd.ExecuteReader())82 {83 dt.Load(sdr);// Load 適合于SqlDataReader。如果是SqlDataAdapter,則要用到 Fill 方法。84 }85 86 getcon().Close();87 88 return dt;89 }90 }91 }
personDAO員工操作類編寫:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 using System.Data; 8 using System.Data.SqlClient; 9 10 namespace DAL 11 { 12 public class personDAO 13 { 14 SQLHelper sq = null; 15 16 public personDAO() 17 { 18 sq = new SQLHelper(); 19 } 20 21 /// <summary> 22 /// 增加員工信息 23 /// </summary> 24 /// <param name="name">要添加的員工姓名</param> 25 /// <param name="sex">要添加的員工性別</param> 26 /// <param name="salary">要添加的員工工資</param> 27 /// <returns>返回真假值:如果是真顯示添加成功,如果是假顯示添加失敗</returns> 28 public bool insert(string name, string sex, string salary) 29 { 30 bool flag = false; 31 32 string sql = "insert into person ([name], sex, salary) values ('"+name+"', '"+sex+"', '"+salary+"')"; 33 34 if (sq.ExecuteNonQuery(sql) > 0) 35 { 36 flag = true; 37 } 38 39 return flag; 40 } 41 42 /// <summary> 43 /// 刪除員工信息 44 /// </summary> 45 /// <param name="id">要刪除員工的id</param> 46 /// <returns>返回真假值:如果是真顯示刪除成功,如果是假顯示刪除失敗</returns> 47 public bool delete(string id) 48 { 49 bool flag = false; 50 51 string sql = "delete from person where id = '" +id+ "'"; 52 53 if (sq.ExecuteNonQuery(sql) > 0) 54 { 55 flag = true; 56 } 57 58 return flag; 59 } 60 61 /// <summary> 62 /// 更改員工信息 63 /// </summary> 64 /// <param name="id">要更改的員工編號</param> 65 /// <param name="name">要更改的員工姓名</param> 66 /// <param name="sex">要更改的員工性別</param> 67 /// <param name="salary">要更改的員工工資</param> 68 /// <returns>返回真假值:如果是真顯示更改成功,如果是假顯示更改失敗</returns> 69 public bool update(string id, string name, string sex, string salary) 70 { 71 bool flag = false; 72 73 string sql ="update person set [name] = '"+name+"', sex = '"+sex+"', salary = '"+salary+"' where id = '"+id+"'"; 74 75 if (sq.ExecuteNonQuery(sql) > 0) 76 { 77 flag = true; 78 } 79 80 return flag; 81 } 82 83 /// <summary> 84 /// 判斷員工姓名是否重復 85 /// </summary> 86 /// <param name="name">要進行判斷的員工姓名</param> 87 /// <returns>返回真假值:如果是真代表重復,如果是假進行添加</returns> 88 public bool repeat(string name) 89 { 90 bool flag = false; 91 92 string sql = "select * from person where [name] = '" +name+ "'"; 93 94 #region 這樣寫的話,還要重新建立一張虛擬表,如果直接用下面的方法,進行行數的判斷就不需要建立。 95 //DataTable dt = sq.ExecuteQuery(sql); 96 97 //if (dt.Rows.Count > 0)//dt.Rows.Count 這個方法是檢查返回的虛擬表中是不是有數據,如果有的話則行數不為零。如果沒有的話則行數為零。 98 //{ 99 // flag = true;100 //}101 #endregion102 103 if (sq.ExecuteQuery(sql).Rows.Count > 0)//dt.Rows.Count 這個方法是檢查返回的虛擬表中是不是有數據,如果有的話則行數不為零。如果沒有的話則行數為零。104 {105 flag = true;106 }107 108 return flag;109 }110 }111 }
新聞熱點
疑難解答