利用LINQ to SQL 增刪改查本地數據庫


  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連接數據庫

  1. 打開VS2010新建控制台應用程序,然后添加LINQ to SQL Class,命名為DbApp.dbml,新建dbml文件之后,可以打開server explorer
  2. 在server exploer的窗口中,右擊"Data Connections",選擇“Add Connections”                                                      
  3. 在Add Connection對話框中選擇“Data source”為"Microsoft SQL Server(sqlClient)","Server name"為"DESKTOP-JOS2U2P"(之前創建的服務器名稱),填寫"Use SQL Server Authentication",在下拉選項框中選擇需要操作的數據庫名稱。                                                                                                        
  4. 在server exploer的窗口中,點擊樹形結構中的+以展開PeopleInfoTable表                                                                                                      
  5. 選中PeopleInfoTable表將其拖到DbApp.dbml的編輯頁面中。如果有警示的對話框出現,點擊是即可
  6. 保存當前的項目,編譯項目查看是否存在錯誤

使用LINQ to SQL增刪改查數據庫

  • 注意:執行Create、Update或Delete操作需要添加主鍵,在DbApp.designer.cs中DPeopleInfoTable的屬性上添加
  1. 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); } }

    輸出結果
     
  2. 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); }
    }

    輸出結果
     
  3. 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);
          }
    }

    輸出結果

  4. 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);
        }
    }

    輸出結果

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM