在 Visual Studio 中使用數據
在 Visual Studio 中,您可以建立應用程式,以幾乎任何資料庫產品或服務、任何格式、任何位置連線到數據—在本機電腦、局域網路上,或在公用、私人或混合式雲端中。
要在 JavaScript、Python、PHP、Ruby 或 C++ 中開發應用程式,您可以像對待其他活動一樣,取得程式庫並撰寫程式碼來連接到資料。 針對 .NET 應用程式,Visual Studio 提供可用來探索數據源的工具、建立物件模型來儲存及操作記憶體中的數據,以及將數據系結至使用者介面。 Microsoft Azure 提供適用於 .NET、Java、Node.js、PHP、Python、Ruby 和行動裝置應用程式和 Visual Studio 中工具的 SDK,以連線到 Azure 記憶體。
下列清單僅顯示一些可從 Visual Studio 使用的資料庫和記憶體系統。 Microsoft Azure 服務是包含基礎資料存放區所有布建和管理的資料服務。 Visual Studio 中的 Azure 開發 工作負載可讓您直接在 Visual Studio 內使用 Azure 資料存放區。
此處列出的大部分其他 SQL 和 NoSQL 資料庫產品都可以裝載於本機計算機、局域網路或虛擬機上的 Microsoft Azure 上。 如果您在Microsoft Azure 虛擬機中裝載資料庫,您必須負責管理資料庫本身。
Microsoft Azure
- SQL 資料庫
- Azure Cosmos DB
- 記憶體(Blob、數據表、佇列、檔案)
- SQL 數據倉儲
- SQL Server Stretch Database(SQL Server 延展資料庫)
- StorSimple
- 還有更多...
SQL
- SQL Server 2005-2016 (包括 Express 和 LocalDB)
- 火鳥
- MariaDB
- MySQL
- 神諭
- PostgreSQL
- SQLite
- 還有更多...
NoSQL
- Apache Cassandra
- CouchDB
- MongoDB
- NDatabase
- OrientDB|
- RavenDB
- VelocityDB
- 還有更多...
許多資料庫廠商和第三方都支援 NuGet 套件的 Visual Studio 整合。 您可以瀏覽 nuget.org 的供應項目或透過 Visual Studio 的 NuGet 套件管理員 (工具>NuGet 套件管理員>管理解決方案的 NuGet 套件)。 其他資料庫產品會與 Visual Studio 整合為延伸模組。 您可以在 Visual Studio Marketplace 中瀏覽這些供應專案,或流覽至 [管理延伸模組]>[管理延伸模組],然後在對話框的左窗格中選取 [Online]。 如需詳細資訊,請參閱 Visual Studio相容的資料庫系統。
藉由使用 Visual Studio Connected Services,您可以簡化將資料庫支援加到您的專案的過程。
針對 SQL Server 案例,我們透過連線服務支援:
- SQL Server 內部部署。 在此案例中,您會在局域網路上某處安裝 SQL Server,並加以連線。
- 本機電腦上的 SQL Server。 在此案例中,您會在本機計算機上安裝 SQL Server 並加以連線。
- SQL Server Express LocalDB。 您不會安裝 Visual Studio 以外的任何專案;您只要連線到它即可。
- 容器上的 SQL Server Express LocalDB。 LocalDB 如同上一個選項,但在本機容器內。
- Azure SQL Server DB。 聯機到在 Azure 中即時執行的服務。
對於其他數據相關技術,Visual Studio 2022 支援下列各項:
- Azure 記憶體 (本機和遠端)
- Azure Cosmos DB (本機和遠端)
- SQLite (僅限本機選項)
- 容器上的 PostgreSQL (僅限本機選項)
- 容器上的 MongoDB (僅限本機選項)
除了連線服務之外,下列清單只會顯示一些可從 Visual Studio 使用的資料庫和記憶體系統。 Microsoft Azure 所提供的服務是數據服務,包含了基礎數據存放區的所有佈署及管理。 Visual Studio 中的 Azure 開發 工作負載可讓您直接從 Visual Studio 使用 Azure 資料存放區。
此處列出的大部分其他 SQL 和 NoSQL 資料庫產品都可以裝載於本機計算機、局域網路或虛擬機上的 Microsoft Azure 上。 如果您在Microsoft Azure 虛擬機中裝載資料庫,您必須負責管理資料庫本身。
Microsoft Azure
- SQL 數據倉儲
- SQL Server Stretch Database(SQL Server 擴展資料庫)
- StorSimple
- 還有更多...
SQL
- 火鳥
- MariaDB
- MySQL
- 神諭
- 還有更多...
NoSQL
- Apache Cassandra
- CouchDB
- MongoDB
- NDatabase
- OrientDB|
- RavenDB
- VelocityDB
- 還有更多...
注意
SQL Server 2005 的擴充支援已於 2016 年 4 月 12 日結束。 不保證 Visual Studio 2015 和更新版本中的數據工具會繼續使用 SQL Server 2005。
.NET 語言
Visual Studio 檔中所述的數據存取技術會使用 ADO.NET。 ADO.NET 是舊版數據存取架構,不建議用於新式數據應用程式。 我們建議以 .NET Core 或 .NET 5 和更新版本為目標,並使用 Entity Framework Core 進行數據存取開發。
ADO.NET 是一組類別,定義用來存取任何類型的數據源的介面,包括關係型和非關係型。 Visual Studio 有數個工具和設計工具,可搭配 ADO.NET 來協助您連線到資料庫、操作數據,並將數據呈現給使用者。 本節中的文件說明如何使用這些工具。 您也可以直接針對 ADO.NET 命令對象進行程序設計。 如需直接呼叫 ADO.NET API 的詳細資訊,請參閱 ADO.NET。
如需與 ASP.NET 相關的資料存取文件,請參閱 在 ASP.NET 網站上使用資料。 如需關於使用 Entity Framework 與 ASP.NET 模型View-Controller (MVC)的教學課程,請參閱 使用 Entity Framework 6 Code First 與 MVC 5 的入門指南。
C# 或 Visual Basic 中的通用 Windows 平臺 (UWP) 應用程式可以使用適用於 .NET 的 Microsoft Azure SDK 來存取 Azure 記憶體和其他 Azure 服務。 Windows.Web.HttpClient 類別可讓您與任何 RESTful 服務通訊。 如需詳細資訊,請參閱 如何使用 Windows.Web.Http連線到 HTTP 伺服器。
針對本機計算機上的數據記憶體,建議的方法是使用 SQLite,其會在與應用程式相同的進程中執行。 如果需要對象關係型對應 (ORM) 層,您可以使用 Entity Framework。 如需詳細資訊,請參閱 資料存取。
如果您要連線到 Azure 服務,請務必下載最新的 Azure SDK 工具。
數據提供者
若要讓資料庫在 ADO.NET 中取用,它必須具有自定義 ADO.NET 數據提供者,否則必須公開 ODBC 或 OLE DB 介面。 Microsoft 提供適用於 SQL Server 產品的 ADO.NET 數據提供者清單 ,以及 ODBC 和 OLE DB 提供者的 清單。
注意
如果您使用 Visual Studio 連線到使用 OLEDB 或 ODBC 數據提供者的資料庫,您必須注意 Visual Studio 2022 之前的 Visual Studio 版本都是 32 位進程。 這表示 Visual Studio 中的某些資料工具只能使用 32 位數據提供者連線到 OLEDB 或 ODBC 資料庫。 這包括 Microsoft Access 32 位 OLEDB 數據提供者,以及其他第三方 32 位提供者。
如果您使用 Visual Studio 2022 連線到資料庫,您必須注意 Visual Studio 2022 是 64 位進程。 這表示 Visual Studio 中的某些資料工具將無法使用 32 位數據提供者連線到 OLEDB 或 ODBC 資料庫。
如果您需要維護連線到 OLEDB 或 ODBC 資料庫的 32 位應用程式,您仍然可以使用 Visual Studio 2022 建置和執行應用程式。 不過,如果您需要使用任何 Visual Studio Data Tools,例如 [伺服器總管]、[數據源精靈] 或 [數據集設計工具],則必須使用仍處於 32 位進程的舊版 Visual Studio。 32 位元處理程序的 Visual Studio 最後一個版本是 Visual Studio 2019。
如果您打算將項目轉換成64位進程,建議您使用64位Microsoft Access資料庫引擎,也稱為Access線上引擎 (ACE)。 如需詳細資訊,請參閱 OLE DB Provider for Jet 和 ODBC 驅動程式只有 32 位版本。
數據模型化
在 .NET 中,當您從數據源擷取數據之後,有三種在記憶體中模型化和操作數據的選項:
Entity Framework:慣用Microsoft ORM 技術。 您可以使用它,將關係型數據程式設計為一流的 .NET 物件。 對於新的應用程式,當需要模型時,它應該是預設的第一選擇。 它需要基礎 ADO.NET 提供者的自定義支援。
LINQ to SQL:舊版對象關係型對應程式。 它適用於較不複雜的情境,但不再積極開發。
數據集:三種模型化技術中最舊的。 其設計主要是為了快速開發「資料表單」應用程式,這類應用程式不會處理大規模的數據,也不會執行複雜的查詢或轉換。 DataSet 物件是由 DataTable 和 DataRow 物件所組成,其邏輯上類似於 SQL Database 物件,遠高於 .NET 物件。 對於以 SQL 數據源為基礎的相對簡單應用程式,數據集可能仍是不錯的選擇。
不需要使用這些技術。 在某些情況下,特別是效能至關重要的情況下,您只要使用 DataReader 物件從資料庫讀取,並將您需要的值複製到集合物件,例如 List<T>。
原生C++
C++連線到 SQL Server 的應用程式,在大部分情況下,應該使用適用於 SQL Server 的 Microsoft® ODBC Driver 13.1。 如果伺服器已連結,則 OLE DB 是必要的,而且您必須使用該 SQL Server Native Client。 您可以使用 ODBC 或 OLE DB 驅動程式直接存取其他資料庫。 ODBC 是目前的標準資料庫介面,但大部分的資料庫系統都提供無法透過 ODBC 介面存取的自定義功能。 OLE DB 是舊版 COM 數據存取技術,仍受到支援,但不建議用於新的應用程式。 如需更多資訊,請參閱 Visual C++ 中的 數據存取。
取用 REST 服務的C++程式可以使用 C++ REST SDK 。
數據模型化 - Visual Studio 不提供適用於C++的 ORM 層。 ODB 是C++的熱門開放原始碼 ORM。
若要深入瞭解如何從 C++ 應用程式連線到資料庫,請參閱 Visual Studio data tools for C++。
JavaScript
Visual Studio 中的 JavaScript 是一流的語言,可用於建置跨平台應用程式、UWP 應用程式、雲端服務、網站和 Web 應用程式。 您可以從 Visual Studio 內使用 Bower、Grunt、Gulp、npm 和 NuGet 來安裝您慣用的 JavaScript 連結庫和資料庫產品。 從 Azure 網站下載 SDK,以連線到 Azure 記憶體和服務。 Edge.js 是一個連結庫,會將伺服器端 JavaScript (Node.js) 連接到 ADO.NET 數據源。
蟒
在 Visual Studio 中安裝 Python 支援,以建立 Python 應用程式。 Azure 文件有數個連線到數據的使用教學,包括下列各項:
相關內容
Microsoft Azure 記憶體— 描述 Azure 記憶體,以及如何使用 Azure Blob、數據表、佇列和檔案建立應用程式。
Azure SQL Database— 說明如何連線到 Azure SQL Database,這是關係資料庫即服務。
SQL Server Data Tools- 描述可簡化數據連線應用程式和資料庫的設計、探索、測試及部署的工具。
ADO.NET- 描述 ADO.NET 架構,以及如何使用 ADO.NET 類別來管理應用程式數據,並與數據源和 XML 互動。
ADO.NET Entity Framework- 描述如何建立數據應用程式,讓開發人員能夠針對概念模型進行程序設計,而不是直接針對關係資料庫進行程序設計。
WCF Data Services 4.5— 描述如何使用 WCF Data Services 在 Web 或實作 Open Data Protocol (OData)的內部網路上部署數據服務。
Office 方案中的數據— 包含說明 Office 解決方案中數據運作方式的主題連結。 這包括架構導向程式設計、數據快取和伺服器端數據存取的相關信息。
LINQ (Language Integrated Query)—描述 C# 和 Visual Basic 內建的查詢功能,以及查詢關係資料庫、XML 檔、數據集和記憶體內部集合的常見模型。
Visual Studio 中的 XML 工具— 討論如何使用 XML 數據、偵錯 XSLT、.NET XML 功能,以及 XML 查詢的架構。
XML 檔和資料— 提供一組完整且整合的類別概觀,這些類別可與 .NET 中的 XML 檔和數據搭配使用。