Die connection.GetSchema
wurde in Asp.Net Kern abgeschrieben wegen, da sie die DataTable
kehrt die ebenfalls abgeschrieben wurde . Der Weg, dies jetzt zu tun, ist zu öffnen, führen Sie die ExecuteReader()
Funktion, und verwenden Sie dann die GetSchemaColumn()
Funktion aus dem resultierenden Reader-Objekt. Hier
ist ein Beispiel:
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();
}
Anmerkung: Ich denke, das ist immer noch in Rc2 stabalized werden. Zum Beispiel gibt die Funktion column.IsKey immer null zurück.
Fiedeln mit .net-Kern 1.1. Ich kann Reader.GetSchemaTable() immer noch sehen, und ich kann Reader.GetColumnSchema() nicht sehen. Frage mich, was die Geschichte ist? – bbsimonbb
Hallo dort. Ich habe gerade eine neue Konsolen-App erstellt, die auf .netcoreapp 1.1 abzielt, System.Data.SqlClient 4.3 hinzufügt und den Code einfügt, und es funktioniert weiterhin. Ich bin mir also nicht sicher, warum Sie die GetSchemaTable() nicht sehen können. –
Yup ich kann es sehen, aber GetSchemaTable() gibt eine [DataTable] (https://docs.microsoft.com/en-us/dotnet/core/api/system.data.datatable) zurück, die keine Eigenschaften oder Methoden hat? – bbsimonbb