逐步解說:操作資料(C#) - ADO.NET
文章推薦指數: 80 %
下載資料庫之後,請將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產品和服務。
隱私權原則。
跳過
送出
謝謝。
本文內容
延伸文章資訊
- 1逐步解說:操作資料(C#) - ADO.NET
下載資料庫之後,請將northwnd.mdf 檔案複製至c:\linqtest6 資料夾。 會從Northwind 資料庫產生C# 程式碼檔案。 您可以使用物件關聯式設計工具或SQLMetal ...
- 2逐步解說:簡單的物件模型和查詢(C#) - ADO.NET
遵循這個逐步解說,建立在範例資料庫中建立資料表模型的實體類別。 然後建立簡單的查詢, ... 一般來說,您會使用物件關聯式設計工具來建立物件模型。
- 3建立資料集之間的關聯性- Visual Studio
如需有關資料集資料表中更新的詳細資訊,請參閱將資料儲存回資料庫。 僅限條件約束關聯. 當您建立DataRelation 物件時,您可以選擇指定關聯只用來強制執行 ...
- 4使用C# 設計您的第一個關聯式資料庫- Azure SQL Database
Azure SQL Database 是Microsoft Cloud (Azure) 中的關聯式資料庫即服務(DBaaS)。 在本教學課程裡,您將了解如何搭配使用Visual Studio 與...
- 5作法:對應資料庫關聯性- ADO.NET
如果您使用Visual Studio,可以使用物件關聯式設計工具來建立類別之間的關聯。 C# 複製. [Table(Name = ...