今天復(fù)習(xí)了一次ADO.NET基礎(chǔ),整理一下自己的認(rèn)為的重點(diǎn):
編寫SqlHelper類,方便我們執(zhí)行數(shù)據(jù)庫(kù)語(yǔ)句,這時(shí)可以直接調(diào)用封裝在SqlHelper類的方法。現(xiàn)在大多數(shù)公司面試的時(shí)候,給你的面試題都會(huì)要你自己手寫一個(gè)SqlHelper的類,這考的是自己的基本功,如果一個(gè)根基不牢固的開(kāi)發(fā)人員,你寫的代碼肯定好不到哪里去。
下面是SqlHelper的演示代碼,一定要熟練:
1 public static SqlHelper 2 { 3 //這里定義一個(gè)字符串變量,把數(shù)據(jù)庫(kù)連接字符串賦值給它,也可以把連接字符串添加到配置文件,這樣整個(gè)項(xiàng)目可以方便訪問(wèn),這里為了清楚直接賦值到字符串變量 4 static string connStr = "Data Source=127.0.0.1//SQL2012; Initial Catalog=Test;User ID=test;PassWord=test"; 5 6 7 //執(zhí)行查詢語(yǔ)句并返回一個(gè)內(nèi)存中的數(shù)據(jù)表 8 public DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters) 9 //因?yàn)椴淮_定SQL語(yǔ)句的參數(shù)有幾個(gè),所以使用了長(zhǎng)度可變參數(shù),但必須放到后面10 {11 12 using (SqlConnection conn = new SqlConnection(connStr))//到數(shù)據(jù)庫(kù)的連接13 {14 conn.Open();//打開(kāi)數(shù)據(jù)庫(kù)連接15 using (SqlCommand cmd = conn.CreateCommand())//創(chuàng)建執(zhí)行對(duì)象16 {17 cmd.CommandText = sql;//給cmd賦值SQL語(yǔ)句18 cmd.Parameters.AddRange(parameters);//把SQL語(yǔ)句參數(shù)添加到cmd19 DataSet dataset = new DataSet();//新建DataSet對(duì)象,用于保存查詢結(jié)果20 SqlDataAdapter adapter = new SqlDataAdapter(cmd);//把執(zhí)行cmd,更新數(shù)據(jù)結(jié)果到adapter對(duì)象21 adapter.Fill(dataset);//adapter對(duì)象的Fill方法把結(jié)果添加到DataSet對(duì)象中22 return dataset.Tables[0];//返回一個(gè)查詢結(jié)果的一個(gè)表23 }24 }25 }26 27 //執(zhí)行查詢語(yǔ)句返回結(jié)果集合的第一行第一列28 public Object ExecuteScalar(string sql,params SqlParameter[] parameters)29 {30 using(SqlConnection conn = new SqlConnection(connStr))//到數(shù)據(jù)庫(kù)的連接31 {32 conn.Open();//打開(kāi)數(shù)據(jù)庫(kù)連接33 using(SqlCommand cmd = conn.CreateCommand())//創(chuàng)建執(zhí)行對(duì)象34 {35 cmd.CommandText=sql;//給cmd賦值SQL語(yǔ)句36 cmd.Parameters.AddRange(parameters);//把SQL語(yǔ)句參數(shù)添加到cmd37 return cmd.ExecuteScalar();//執(zhí)行查詢,返回查詢結(jié)果的第一行的第一列38 }39 }40 }41 42 //執(zhí)行參數(shù)化SQL語(yǔ)句,返回受影響的行數(shù)43 public int ExecuteNonQuery(string sql,params SqlParameter[] parameters)44 {45 46 using (SqlConnection conn = new SqlConnection(connStr))//到數(shù)據(jù)庫(kù)的連接47 {48 conn.Open();//打開(kāi)數(shù)據(jù)庫(kù)連接49 using(SqlCommand cmd= conn.CreateCommand())//創(chuàng)建執(zhí)行對(duì)象50 {51 cmd.CommandText= sql;//給cmd賦值SQL語(yǔ)句52 cmd.Parameters.AddRange(parameters);//添加SQL語(yǔ)句中的參數(shù)53 return cmd.ExecuteNonQuery();//執(zhí)行數(shù)據(jù)庫(kù)語(yǔ)句并返回受影響的行數(shù)54 }55 }56 }57 }
二、上面的SqlHelper類創(chuàng)建好了我們就可以在項(xiàng)目里面調(diào)用了,下面演示調(diào)用代碼:
調(diào)用SqlHerlper類E的方法插入數(shù)據(jù):
1 class PRogram 2 { 3 static void Main(string[] args) 4 { 5 //輸入數(shù)據(jù) 6 Console.WriteLine("請(qǐng)輸入要保存到數(shù)據(jù)庫(kù)的名字:"); 7 string name = Console.ReadLine(); 8 Console.WriteLine("請(qǐng)輸入年齡:"); 9 int age = Console.ReadLine();10 11 //調(diào)用ExecuteNonQuery(string sql,params SqlParameter[] parameters)函數(shù),用于將獲取的的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)12 int rows = sqlhelper.ExecuteNonQuery("insert into T_Test(Name,Age) vaules(@Name,@Age)", new SqlParameter("@Name", name), new SqlParameter("@Age", age));13 14 Console.WriteLine("成功插入{0}條數(shù)據(jù)", rows);//顯示執(zhí)行結(jié)果15 Console.ReadKey();16 }17 18 }
刪除數(shù)據(jù)
1 1 class Program 2 2 { 3 3 static void Main(string[] args) 4 4 { 5 5 string name = "張三"; 6 6 7 7 int result = sqlhelper.ExecuteNonQuery("delete from T_Test where Name=@Name", new SqlParameter("@Name", name));//刪除名字叫張三的數(shù)據(jù) 8 8 Console.WriteLine("成功刪除{0}數(shù)據(jù).", result); 9 9 10 10 Console.ReadKey();11 11 }12 13 }
查詢數(shù)據(jù)
1. 創(chuàng)建一個(gè)winform窗體,放一個(gè)控件dataGridView

2.在窗體的載入事件中添加調(diào)用SqlHelper類的方法,并把結(jié)果賦值到dataGridView,代碼如下:
1 private void Form1_Load(object sender, EventArgs e)2 {3 //在窗體的載入事件中添加調(diào)用SqlHelper類的方法,并把結(jié)果賦值到dataGridView4 dataGridView1.DataSource = sqlhelper.ExecuteDataTable("select Name from T_Test");5 }
3.運(yùn)行窗體,顯示的結(jié)果就是從數(shù)據(jù)庫(kù)查詢到的數(shù)據(jù)了

這是我今天復(fù)習(xí)過(guò)的覺(jué)得是的重點(diǎn),雖然很菜啊,這是我第一次寫帶有代碼的博客,自己終于走出這一步,自己以后也會(huì)多寫博客,分享自己學(xué)習(xí)中的點(diǎn)點(diǎn)滴滴。
大神不要噴哈......
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注