今天復習了一次ADO.NET基礎,整理一下自己的認為的重點:
編寫SqlHelper類,方便我們執行數據庫語句,這時可以直接調用封裝在SqlHelper類的方法。現在大多數公司面試的時候,給你的面試題都會要你自己手寫一個SqlHelper的類,這考的是自己的基本功,如果一個根基不牢固的開發人員,你寫的代碼肯定好不到哪里去。
下面是SqlHelper的演示代碼,一定要熟練:
1 public static SqlHelper 2 { 3 //這里定義一個字符串變量,把數據庫連接字符串賦值給它,也可以把連接字符串添加到配置文件,這樣整個項目可以方便訪問,這里為了清楚直接賦值到字符串變量 4 static string connStr = "Data Source=127.0.0.1\\SQL2012; Initial Catalog=Test;User ID=test;Password=test"; 5 6 7 //執行查詢語句並返回一個內存中的數據表 8 public DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters) 9 //因為不確定SQL語句的參數有幾個,所以使用了長度可變參數,但必須放到后面 10 { 11 12 using (SqlConnection conn = new SqlConnection(connStr))//到數據庫的連接 13 { 14 conn.Open();//打開數據庫連接 15 using (SqlCommand cmd = conn.CreateCommand())//創建執行對象 16 { 17 cmd.CommandText = sql;//給cmd賦值SQL語句 18 cmd.Parameters.AddRange(parameters);//把SQL語句參數添加到cmd 19 DataSet dataset = new DataSet();//新建DataSet對象,用於保存查詢結果 20 SqlDataAdapter adapter = new SqlDataAdapter(cmd);//把執行cmd,更新數據結果到adapter對象 21 adapter.Fill(dataset);//adapter對象的Fill方法把結果添加到DataSet對象中 22 return dataset.Tables[0];//返回一個查詢結果的一個表 23 } 24 } 25 } 26 27 //執行查詢語句返回結果集合的第一行第一列 28 public Object ExecuteScalar(string sql,params SqlParameter[] parameters) 29 { 30 using(SqlConnection conn = new SqlConnection(connStr))//到數據庫的連接 31 { 32 conn.Open();//打開數據庫連接 33 using(SqlCommand cmd = conn.CreateCommand())//創建執行對象 34 { 35 cmd.CommandText=sql;//給cmd賦值SQL語句 36 cmd.Parameters.AddRange(parameters);//把SQL語句參數添加到cmd 37 return cmd.ExecuteScalar();//執行查詢,返回查詢結果的第一行的第一列 38 } 39 } 40 } 41 42 //執行參數化SQL語句,返回受影響的行數 43 public int ExecuteNonQuery(string sql,params SqlParameter[] parameters) 44 { 45 46 using (SqlConnection conn = new SqlConnection(connStr))//到數據庫的連接 47 { 48 conn.Open();//打開數據庫連接 49 using(SqlCommand cmd= conn.CreateCommand())//創建執行對象 50 { 51 cmd.CommandText= sql;//給cmd賦值SQL語句 52 cmd.Parameters.AddRange(parameters);//添加SQL語句中的參數 53 return cmd.ExecuteNonQuery();//執行數據庫語句並返回受影響的行數 54 } 55 } 56 } 57 }
二、上面的SqlHelper類創建好了我們就可以在項目里面調用了,下面演示調用代碼:
調用SqlHerlper類E的方法插入數據:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //輸入數據 6 Console.WriteLine("請輸入要保存到數據庫的名字:"); 7 string name = Console.ReadLine(); 8 Console.WriteLine("請輸入年齡:"); 9 int age = Console.ReadLine(); 10 11 //調用ExecuteNonQuery(string sql,params SqlParameter[] parameters)函數,用於將獲取的的數據插入到數據庫 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}條數據", rows);//顯示執行結果 15 Console.ReadKey(); 16 } 17 18 }
刪除數據
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));//刪除名字叫張三的數據 8 8 Console.WriteLine("成功刪除{0}數據.", result); 9 9 10 10 Console.ReadKey(); 11 11 } 12 13 }
查詢數據
1. 創建一個winform窗體,放一個控件dataGridView
2.在窗體的載入事件中添加調用SqlHelper類的方法,並把結果賦值到dataGridView,代碼如下:
1 private void Form1_Load(object sender, EventArgs e) 2 { 3 //在窗體的載入事件中添加調用SqlHelper類的方法,並把結果賦值到dataGridView 4 dataGridView1.DataSource = sqlhelper.ExecuteDataTable("select Name from T_Test"); 5 }
3.運行窗體,顯示的結果就是從數據庫查詢到的數據了
這是我今天復習過的覺得是的重點,雖然很菜啊,這是我第一次寫帶有代碼的博客,自己終於走出這一步,自己以后也會多寫博客,分享自己學習中的點點滴滴。
大神不要噴哈......