的connection.GetSchema
已Asp.Net核心折舊完畢,由於它返回它也已經貶值了DataTable
。現在執行此操作的方法是打開運行ExecuteReader()
函數,然後使用生成的讀取器對象中的GetSchemaColumn()
函數。
這裏有一個例子:
public static void Main(string[] args)
{
using (SqlConnection connection = new SqlConnection("Server=(localdb)\\v11.0;Database=MyAdventureWorks;Trusted_Connection=True"))
{
connection.Open();
SqlCommand cmd = new SqlCommand("select * from [Person].[Person]", connection);
DbDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.SchemaOnly);
if (reader.CanGetColumnSchema())
{
var columns = reader.GetColumnSchema();
foreach (var column in columns)
{
Console.Write("ColumName: " + column.ColumnName);
Console.Write(", DataTypeName: " + column.DataTypeName);
Console.Write(", ColumnSize: " + column.ColumnSize);
Console.WriteLine(", IsUnique: " + column.IsUnique);
}
}
else
throw new Exception("Connection does not support GetColumnSchema.");
}
Console.ReadLine();
}
注:我認爲這仍然是RC2中被stabalized。例如column.IsKey函數總是返回null。
擺弄.net核心1.1。我仍然可以看到Reader.GetSchemaTable(),我看不到Reader.GetColumnSchema()。不知道這個故事是什麼? – bbsimonbb
你好。我剛剛創建了一個新的控制檯應用程序,以.netcoreapp 1.1爲目標,添加System.Data.SqlClient 4.3,並粘貼代碼,並且它仍然有效。所以我不確定爲什麼你看不到GetSchemaTable()。 –
是的,我可以看到它,但GetSchemaTable()返回沒有屬性或方法的[DataTable](https://docs.microsoft.com/en-us/dotnet/core/api/system.data.datatable)? – bbsimonbb