逐步解說:操作資料(C#) - ADO.NET

文章推薦指數: 80 %
投票人數:10人

下載資料庫之後,請將northwnd.mdf 檔案複製至c:\linqtest6 資料夾。

會從Northwind 資料庫產生C# 程式碼檔案。

您可以使用物件關聯式設計工具或SQLMetal ... 跳到主要內容 已不再支援此瀏覽器。

請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。

下載MicrosoftEdge 其他資訊 目錄 結束焦點模式 儲存 編輯 共用 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 逐步解說:操作資料(C#) 09/27/2021 m o S 本文內容 本逐步解說針對加入、修改和刪除資料庫中的資料,提供基本的端對端LINQtoSQL案例。

您將使用範例Northwind資料庫的複本來加入客戶、變更客戶名稱,以及刪除訂單。

注意 在下列指示的某些VisualStudio使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的VisualStudio版本以及使用的設定會決定這些項目。

如需詳細資訊,請參閱將VisualStudioIDE個人化。

本逐步解說的內容是依據VisualC#開發設定所撰寫的。

必要條件 本逐步解說需要下列項目: 本逐步解說會使用專用資料夾("c:\linqtest6")來保存檔案。

請先建立這個資料夾,再開始逐步解說。

Northwind範例資料庫。

如果您的開發電腦上沒有這個資料庫,則可以從Microsoft下載網站下載。

如需相關指示,請參閱下載範例資料庫。

下載資料庫之後,請將northwnd.mdf檔案複製至c:\linqtest6資料夾。

會從Northwind資料庫產生C#程式碼檔案。

您可以使用物件關聯式設計工具或SQLMetal工具來產生此檔案。

本逐步解說是使用SQLMetal工具,以下列命令列所撰寫: sqlmetal/code:"c:\linqtest6\northwind.cs"/language:csharp"C:\linqtest6\northwnd.mdf"/pluralize 如需詳細資訊,請參閱SqlMetal.exe(程式碼產生工具)。

概觀 此逐步解說包含六個主要工作: LINQtoSQL在VisualStudio中建立方案。

將資料庫程式碼檔案加入至專案。

建立新的客戶物件。

修改客戶的連絡人名稱。

刪除訂單。

將這些變更送出至Northwind資料庫。

建立LINQtoSQL方案 在第一個工作中,您會建立VisualStudio方案,其中包含建立和執行專案所需的參考LINQtoSQL。

若要建立LINQtoSQL方案 在VisualStudio的[檔案]功能表上,指向[新增],然後按一下[Project]。

在[新增Project]對話方塊的[Project類型]窗格中,按一下[Visualc#]。

按一下[範本]窗格中的[主控台應用程式]。

在[名稱]方塊中,輸入LinqDataManipulationApp。

在[位置]方塊中,確認您要儲存專案檔的位置。

按一下[確定]。

加入LINQ參考和指示詞 本逐步解說使用的組件,可能在您的專案中預設為不安裝。

如果System.Data.Linq未列為專案中的參考,請按照下列步驟所述將它加入: 若要加入System.Data.Linq 在方案總管中,以滑鼠右鍵按一下[參考],然後按一下[加入參考]。

在[加入參考]對話方塊中,按一下[.net],按一下[system.string]元件,然後按一下[確定]。

組件隨即加入至專案。

將下列指示詞加在Program.cs的上方: usingSystem.Data.Linq; usingSystem.Data.Linq.Mapping; 將Northwind程式碼檔案加入至專案 這些步驟假設您已使用SQLMetal工具,從Northwind範例資料庫產生程式碼檔案。

如需詳細資訊,請參閱本逐步解說稍早的「必要條件」一節。

若要將Northwind程式碼檔案加入至專案 在[專案]功能表上,按一下[新增現有項目]。

在[加入現有專案]對話方塊中,流覽至c:\linqtest6\northwind],然後按一下[加入]。

northwind.cs檔案會加入至專案。

設定資料庫連接 請先測試與資料庫的連接。

請特別注意,資料庫Northwnd沒有字母i。

如果在後續步驟發生錯誤,則請檢閱northwind.cs檔案,以判斷Northwind部分類別的拼法。

若要設定和測試資料庫連接 將下列程式碼輸入或貼入Program類別的Main方法: //Usethefollowingconnectionstring. Northwnddb=newNorthwnd(@"c:\linqtest6\northwnd.mdf"); //Keeptheconsolewindowopenafteractivitystops. Console.ReadLine(); 按F5,立即測試應用程式。

主控台視窗隨即開啟。

您可以在主控台視窗中按enter鍵,或按一下[VisualStudioDebug]功能表上的[停止調試程式],以關閉應用程式。

建立新的實體 建立新的實體十分簡單。

您可以使用Customer關鍵字,建立物件(如new)。

在本節和下列各節中,您變更的只是本機快取。

在本逐步解說最後呼叫SubmitChanges之前,都不會將變更傳送至資料庫。

若要加入新的Customer實體物件 在Customer方法的Console.ReadLine();前面加入下列程式碼,建立新的Main: //CreatethenewCustomerobject. CustomernewCust=newCustomer(); newCust.CompanyName="AdventureWorksCafe"; newCust.CustomerID="ADVCA"; //AddthecustomertotheCustomerstable. db.Customers.InsertOnSubmit(newCust); Console.WriteLine("\nCustomersmatchingCAbeforeinsert"); foreach(varcindb.Customers.Where(cust=>cust.CustomerID.Contains("CA"))) { Console.WriteLine("{0},{1},{2}", c.CustomerID,c.CompanyName,c.Orders.Count); } 按F5對方案進行偵錯。

在主控台視窗中按enter鍵,以停止調試,然後繼續進行逐步解說。

更新實體 在下列步驟中,您會擷取Customer物件,並修改它的其中一個屬性。

若要變更Customer的名稱 將下列程式碼加入至Console.ReadLine();的上方: //Queryforspecificcustomer. //First()returnsoneobjectratherthanacollection. varexistingCust= (fromcindb.Customers wherec.CustomerID=="ALFKI" selectc) .First(); //Changethecontactnameofthecustomer. existingCust.ContactName="NewContact"; 刪除實體 您可以使用同一個客戶物件,刪除第一份訂單。

在下列程式碼中,會示範如何中斷資料列之間的關聯性(Relationship),以及如何刪除資料庫中的資料列。

將下列程式碼加入至Console.ReadLine的前面,以查看如何刪除物件: 若要刪除資料列 將下列程式碼加入至Console.ReadLine();的正上方: //AccessthefirstelementintheOrderscollection. Orderord0=existingCust.Orders[0]; //AccessthefirstelementintheOrderDetailscollection. OrderDetaildetail0=ord0.OrderDetails[0]; //Displaytheordertobedeleted. Console.WriteLine ("TheOrderDetailtobedeletedis:OrderID={0},ProductID={1}", detail0.OrderID,detail0.ProductID); //MarktheOrderDetailrowfordeletionfromthedatabase. db.OrderDetails.DeleteOnSubmit(detail0); 將變更送出至資料庫 建立、更新和刪除物件的最終必要步驟是實際將變更送出至資料庫。

沒有這個步驟,所進行的變更只是針對本機,並不會出現在查詢結果中。

若要將變更送出至資料庫 將下列程式碼插入至Console.ReadLine的正上方: db.SubmitChanges(); 將下列程式碼插入至SubmitChanges的後面,以顯示送出變更之前和之後的效果: Console.WriteLine("\nCustomersmatchingCAafterupdate"); foreach(varcindb.Customers.Where(cust=> cust.CustomerID.Contains("CA"))) { Console.WriteLine("{0},{1},{2}", c.CustomerID,c.CompanyName,c.Orders.Count); } 按F5對方案進行偵錯。

在主控台視窗中按enter鍵,以關閉應用程式。

注意 送出變更以加入新的客戶之後,無法再照原狀執行這個方案。

若要重新執行方案,請變更要加入的客戶名稱和客戶識別碼。

另請參閱 依逐步解說學習 此頁面有所助益嗎? Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

跳過 送出 謝謝。

此頁面有所助益嗎? Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

跳過 送出 謝謝。

本文內容



請為這篇文章評分?