C#新人,博客園第一篇博文,希望大家多多指教。
最近趁項目空隙,學習了LINQ,其強大高效易讀的數據操作方式令人印象深刻。特別是LINQ to SQL,讓用戶可以像操作內存對象一樣操作SQL數據庫。在閱讀了《深入理解c#》和參考以下四篇博文后,自己摸索,完成了創建本地SQL數據庫和數據表,VS連接數據庫,到利用LINQ to SQL增刪改查數據庫表中信息。
SQL服務器安裝:http://www.downcc.com/tech/4135.html
SQL數據庫和數據表格創建:http://blog.csdn.net/justdb/article/details/7012675
利用LINQ to SQL增刪改查:http://www.cnblogs.com/yukaizhao/archive/2010/05/13/linq_to_sql_1.html
http://developer.51cto.com/art/200912/166240.htm
SQL服務器和數據庫的安裝以及表格創建基本是按照前兩篇博文來完成,這兩篇博文講的十分詳細,是我等小白之福音啊!我在這兩步中在本地計算機中創建了一個ExampleDB數據庫,在該庫中創建了一張PeopleInfoTable表格,表格中有Names,Ages,Addresses,Phones,ID,Nations列,添加了7行數據
完成上述步驟之后,開始利用VS連接數據庫
- 打開VS2010新建控制台應用程序,然后添加LINQ to SQL Class,命名為DbApp.dbml,新建dbml文件之后,可以打開server explorer
- 在server exploer的窗口中,右擊"Data Connections",選擇“Add Connections”
- 在Add Connection對話框中選擇“Data source”為"Microsoft SQL Server(sqlClient)","Server name"為"DESKTOP-JOS2U2P"(之前創建的服務器名稱),填寫"Use SQL Server Authentication",在下拉選項框中選擇需要操作的數據庫名稱。
- 在server exploer的窗口中,點擊樹形結構中的+以展開PeopleInfoTable表
- 選中PeopleInfoTable表將其拖到DbApp.dbml的編輯頁面中。如果有警示的對話框出現,點擊是即可
- 保存當前的項目,編譯項目查看是否存在錯誤
使用LINQ to SQL增刪改查數據庫
- 注意:執行Create、Update或Delete操作需要添加主鍵,在DbApp.designer.cs中DPeopleInfoTable的屬性上添加
- LINQ to SQL查詢數據庫
//查詢數據庫 using (DbAppDataContext context = new DbAppDataContext()) { context.Log = Console.Out; var query = from p in context.PeopleInfoTables let length = p.Names.Length orderby length select new { Name = p.Names, Length = length }; foreach (var entry in query) { Console.WriteLine("{0}:{1}", entry.Name, entry.Length); } }
輸出結果 - LINQ to SQL增加數據庫信息
//往數據庫增加信息 using (DbAppDataContext context = new DbAppDataContext()) { context.Log = Console.Out; context.PeopleInfoTables.InsertOnSubmit(new PeopleInfoTable { Names = "Qinan", Addresses = "Shaoxing", Ages = 24, ID = "1231231", Nations = "China", Phones = "18868875132" }); context.SubmitChanges(); var query = from p in context.PeopleInfoTables select new { Name = p.Names, Address = p.Addresses }; foreach (var entry in query) { Console.WriteLine("{0}:{1}", entry.Name, entry.Address); }
}
輸出結果 - LINQ to SQL刪除數據庫信息
//刪除數據庫某條信息 using (DbAppDataContext context = new DbAppDataContext()) { context.Log = Console.Out; var people = context.PeopleInfoTables.SingleOrDefault(p => p.Names == "Qinan"); if (people != null) { context.PeopleInfoTables.DeleteOnSubmit(people); context.SubmitChanges(); } var query = from p in context.PeopleInfoTables select new { Name = p.Names, Address = p.Addresses }; foreach (var entry in query) { Console.WriteLine("{0}:{1}", entry.Name, entry.Address); }
}
輸出結果 - LINQ to SQL編輯數據庫
//編輯數據庫中的信息 using (DbAppDataContext context = new DbAppDataContext()) { context.Log = Console.Out; var people = context.PeopleInfoTables.SingleOrDefault(p => p.Names == "Yuan"); if (people != null) { people.Ages = 50; people.Addresses = "tanggu"; context.SubmitChanges(); } var query = from p in context.PeopleInfoTables select new {Name = p.Names, Age = p.Ages, Address = p.Addresses}; foreach (var entry in query) { Console.WriteLine("{0}:{1},{2}", entry.Name, entry.Age, entry.Address); }
}
輸出結果