Async -Methode gibt keine Daten aller Datables zurückC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Async -Methode gibt keine Daten aller Datables zurück

Post by Anonymous »

Ich schreibe eine Methode in .NET 8 mit C#, um Abfrage auszuführen und eine Liste von Datatables asynchron zu laden. Hier ist der Code, den ich verwende: < /p>
static async Task Main(string[] args)
{
var sql = @"
SET NOCOUNT ON;
SELECT 'A' AS Col1Tbl1;
SELECT 'B' AS Col1Tbl2;
";

var connectionString = "Data Source=.;Initial Catalog=DummyDb;User ID=sa;Password=123abc;MultipleActiveResultSets=True;TrustServerCertificate=true";

var tables = await ExecSQLAsync(sql, connectionString);

Console.WriteLine($"Total Tables Returned: {tables.Count}");
for (int i = 0; i < tables.Count; i++)
{
Console.WriteLine($"\nTable {i + 1} (Rows: {tables.Rows.Count}):");
foreach (DataColumn col in tables.Columns)
{
Console.Write(col.ColumnName + "\t");
}
Console.WriteLine();
}
Console.ReadLine();
}

static async Task ExecSQLAsync(string sql, string connString)
{
var resultTables = new List();
//var connectionString = _connectionString;

try
{
using (var connection = new SqlConnection(connString))
using (var command = new SqlCommand(sql, connection))
{
command.CommandTimeout = 0;
await connection.OpenAsync();

using (var reader = await command.ExecuteReaderAsync())
{
do
{
var table = new DataTable();
table.Load(reader);
resultTables.Add(table);
}
while (await reader.NextResultAsync());
}
}
}
catch (Exception ex)
{
//_logger.LogError(ex, "Error executing SQL command.");
}

return resultTables;
}
< /code>
Gibt jedoch nur Daten aus dem ersten DataTable zurück:
Ergebnis < /p>
So senden Sie Daten aus allen DataTables zurück, während Sie den Code async behalten. < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post