在.NET應用程序中反映SQL Server數據庫模式及其所有對象的最簡單方法是什麼?檢索SQL Server數據庫模式和對象並反映在.Net應用程序中
基本上我希望我的應用程序能夠掃描數據庫模式並向我顯示所有表和其他對象。此外,我應該能夠探索所有表格列及其屬性(類型,約束等)。
我打算使用數據訪問應用程序塊來滿足我的數據訪問需求。它是否也符合上述要求?
在.NET應用程序中反映SQL Server數據庫模式及其所有對象的最簡單方法是什麼?檢索SQL Server數據庫模式和對象並反映在.Net應用程序中
基本上我希望我的應用程序能夠掃描數據庫模式並向我顯示所有表和其他對象。此外,我應該能夠探索所有表格列及其屬性(類型,約束等)。
我打算使用數據訪問應用程序塊來滿足我的數據訪問需求。它是否也符合上述要求?
你可以使用任何你想要的數據訪問方法 - 你只需要在數據庫上運行正確的查詢。 This article似乎有你想要的一個很好的例子。
SQL Server提供了一些可以使用的系統視圖,例如, sys.tables
列出所有表,sys.columns
所有列等
MSDN有一個FAQ。
雖然您可以在SQL Server的元數據表上使用查詢,但訪問此信息的最簡單方法是使用Sql Server Management Objects (SMO)。
要使用此示例,請引用Microsoft.SqlServer.ConnectionInfo,Microsoft.SqlServer.Management.Sdk.Sfc和Microsoft.SqlServer.Smo。
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
var sqlConnection = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI");
var server = new Server(new ServerConnection(sqlConnection));
foreach (Database database in server.Databases)
{
foreach (Table table in database.Tables)
{
Console.WriteLine("{0}: {1}", database.Name, table.Name);
}
}