C#如何實(shí)現(xiàn)對(duì)sql server數(shù)據(jù)庫(kù)的增刪改查
一個(gè)專門實(shí)現(xiàn)sql server數(shù)據(jù)庫(kù)的增刪改查,以及將查詢的結(jié)果返回成表格等功能,分享代碼如下
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient;//第一步:引用與sql相關(guān)的命名空間 using System.Data;//引用表的命名空間 //行注釋 ///段落注釋 /// <summary> ///第二步: 把命名空間刪掉,使得我們?cè)谝院蟮拈_發(fā)中不用去創(chuàng)建一個(gè)sqlhelper類的對(duì)象和引用它的命名空間。實(shí)現(xiàn)直接調(diào)用 /// </summary> //第三步:在class前面加上一個(gè)public 實(shí)現(xiàn)我們可以在dal的任何地方中去調(diào)用它。 //public 叫公共類 它的訪問權(quán)限是最大的。 如果在class前面加上了它的話,那么這個(gè)類我們可以在當(dāng)前的類庫(kù)中任意調(diào)用。 public class SqlHelper { //第四步:我們想要直接調(diào)用sqlHelper類,刪除命名空間是不夠的,我們還要把里面的方法和字段全部設(shè)置為靜態(tài)。 public static string connstr = "server=.;uid=sa;pwd=sa;database=rj1301";//公共的靜態(tài)的 連接字符串 public static int ExecuteScalar(string cmdText, params SqlParameter[] pms) { //params:不限長(zhǎng)度的數(shù)組 //第一步:創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象連接 SqlConnection conn = new SqlConnection(connstr); //第二步:打開數(shù)據(jù)庫(kù) conn.Open(); //第三步:創(chuàng)建數(shù)據(jù)庫(kù)命令對(duì)象和數(shù)據(jù)庫(kù)查詢語(yǔ)句 SqlCommand cmd = new SqlCommand(cmdText, conn); //第四步:創(chuàng)建參數(shù)對(duì)象 //cmd.Parameters.Add(pms);//如果我們?cè)谶@里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。 // int[] ii = new int[5] { 1,2,3,4,5 }; if (pms != null) { //for (int i = 0; i <pms.Length; i++) //{ // if (pms[i]!=null) // { // cmd.Parameters.Add(pms[i]); // } //} foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱 { if (item != null) { cmd.Parameters.Add(item); } } } //第五步:返回結(jié)果 int i = Convert.ToInt32(cmd.ExecuteScalar()); //第六步:關(guān)閉數(shù)據(jù)庫(kù) conn.Close(); //第六步:把最終的結(jié)果返回到外面去 return i; } public static int ExecuteNonQuery(string cmdText, params SqlParameter[] pms) { //params:不限長(zhǎng)度的數(shù)組 //第一步:創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象連接 SqlConnection conn = new SqlConnection(connstr); //第二步:打開數(shù)據(jù)庫(kù) conn.Open(); //第三步:創(chuàng)建數(shù)據(jù)庫(kù)命令對(duì)象和數(shù)據(jù)庫(kù)查詢語(yǔ)句 SqlCommand cmd = new SqlCommand(cmdText, conn); //第四步:創(chuàng)建參數(shù)對(duì)象 //cmd.Parameters.Add(pms);//如果我們?cè)谶@里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。 // int[] ii = new int[5] { 1,2,3,4,5 }; if (pms != null) { //for (int i = 0; i <pms.Length; i++) //{ // if (pms[i]!=null) // { // cmd.Parameters.Add(pms[i]); // } //} foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱 { if (item != null) { cmd.Parameters.Add(item); } } } //第五步:返回結(jié)果 int i = Convert.ToInt32(cmd.ExecuteNonQuery()); //第六步:關(guān)閉數(shù)據(jù)庫(kù) conn.Close(); //第六步:把最終的結(jié)果返回到外面去 return i; } //返回一張表 public static DataTable GetTable(string cmdText, params SqlParameter[] pms) { //params:不限長(zhǎng)度的數(shù)組 //第一步:創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象連接 SqlConnection conn = new SqlConnection(connstr); //第二步:打開數(shù)據(jù)庫(kù) conn.Open(); //第三步:創(chuàng)建數(shù)據(jù)庫(kù)命令對(duì)象和數(shù)據(jù)庫(kù)查詢語(yǔ)句 SqlCommand cmd = new SqlCommand(cmdText, conn); //第四步:創(chuàng)建參數(shù)對(duì)象 //cmd.Parameters.Add(pms);//如果我們?cè)谶@里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。 // int[] ii = new int[5] { 1,2,3,4,5 }; if (pms != null) { //for (int i = 0; i <pms.Length; i++) //{ // if (pms[i]!=null) // { // cmd.Parameters.Add(pms[i]); // } //} foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱 { if (item != null) { cmd.Parameters.Add(item); } } } //5. SqlDataAdapter是.net中用于存放數(shù)組庫(kù)里面取出來(lái)的數(shù) 相當(dāng)于我們現(xiàn)實(shí)生活中的容器 SqlDataAdapter sda = new SqlDataAdapter(cmd); //6.去創(chuàng)建一個(gè)適配器 用來(lái)接受容器的 DataSet ds = new DataSet(); sda.Fill(ds,"aa"); conn.Close(); DataTable dt = ds.Tables["aa"]; return dt; } public static SqlDataReader GetReader(string cmdText, params SqlParameter[] pms) { SqlConnection conn = new SqlConnection(connstr); //第二步:打開數(shù)據(jù)庫(kù) conn.Open(); //第三步:創(chuàng)建數(shù)據(jù)庫(kù)命令對(duì)象和數(shù)據(jù)庫(kù)查詢語(yǔ)句 SqlCommand cmd = new SqlCommand(cmdText, conn); //第四步:創(chuàng)建參數(shù)對(duì)象 //cmd.Parameters.Add(pms);//如果我們?cè)谶@里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。 // int[] ii = new int[5] { 1,2,3,4,5 }; if (pms != null) { //for (int i = 0; i <pms.Length; i++) //{ // if (pms[i]!=null) // { // cmd.Parameters.Add(pms[i]); // } //} foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱 { if (item != null) { cmd.Parameters.Add(item); } } } SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//把數(shù)據(jù)取出來(lái)以游標(biāo)的形式放入sdr return sdr; } }
以上就是對(duì)sql server數(shù)據(jù)庫(kù)的增刪改查的實(shí)現(xiàn)代碼,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題實(shí)例
這篇文章主要介紹了C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題,簡(jiǎn)單說明了責(zé)任鏈模式的概念,并結(jié)合《西游記》中真假美猴王故事背景為實(shí)例分析了責(zé)任鏈模式的具體使用技巧,需要的朋友可以參考下2017-09-09在C#中創(chuàng)建和讀取XML文件的實(shí)現(xiàn)方法
項(xiàng)目中需要將前臺(tái)頁(yè)面中的信息保存下來(lái)并存儲(chǔ)為xml文件格式到數(shù)據(jù)庫(kù)中去。因此我先在這里通過一個(gè)小實(shí)例來(lái)學(xué)習(xí)xml的創(chuàng)建與讀取2013-09-09動(dòng)態(tài)改變gridview列寬度函數(shù)分享
通常用GridView綁定datatable,由于需要?jiǎng)討B(tài)綁定到不同的datatable所以需要?jiǎng)討B(tài)調(diào)整GridView的寬度。寫了這個(gè)函數(shù)實(shí)現(xiàn)該功能2014-01-01C#調(diào)用百度API實(shí)現(xiàn)活體檢測(cè)的方法
這篇文章主要給大家介紹了關(guān)于C#調(diào)用百度API實(shí)現(xiàn)活體檢測(cè)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09C#函數(shù)式編程中的遞歸調(diào)用之尾遞歸詳解
這篇文章主要介紹了C#函數(shù)式編程中的遞歸調(diào)用詳解,本文講解了什么是尾遞歸、尾遞歸的多種方式、尾遞歸的代碼實(shí)例等內(nèi)容,需要的朋友可以參考下2015-01-01