的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