Я создаю простой класс, но получаю Cannot convert Task object to Task SqlDataReader
. Вот мой код,Невозможно преобразовать объект задачи в задачу SqlDataReader
public static class SqlHelper
{
enum ExecutionType
{
NonQuery,
Reader,
Scaler
}
public static async Task<int> ExecuteNonQueryAsync(string connectionString, CommandType commandType,
string commandText,
params SqlParameter[] parameters)
{
return (Task<int>)ExecuteAsync(ExecutionType.NonQuery, connectionString, commandType, commandText, parameters);
}
public static async Task<SqlDataReader> ExecuteReaderAsync(string connectionString, CommandType commandType,
string commandText, params SqlParameter[] parameters)
{
return (Task<SqlDataReader>)ExecuteAsync(ExecutionType.Reader, connectionString, commandType, commandText, parameters);
}
public static async Task<object> ExecuteScalarAsync(string connectionString, CommandType commandType, string commandText,
params SqlParameter[] parameters)
{
return ExecuteAsync(ExecutionType.Scaler, connectionString, commandType, commandText, parameters);
}
private static async Task<object> ExecuteAsync(ExecutionType executionType, string connectionString, CommandType commandType, string commandText,
params SqlParameter[] parameters)
{
using (var connection = new SqlConnection(connectionString))
{
using (var command = new SqlCommand(commandText, connection) { CommandType = commandType })
{
command.Parameters.AddRange(parameters);
await connection.OpenAsync();
if (executionType == ExecutionType.Reader)
{
return await command.ExecuteReaderAsync();
}
if (executionType == ExecutionType.NonQuery)
{
return await command.ExecuteNonQueryAsync();
}
return await command.ExecuteScalarAsync();
}
}
}
}
Любое предложение исправить эту проблему будет оценено по достоинству?
Нет такого сообщения об ошибке. Пожалуйста, сообщите точную ошибку/исключение компилятора и скажите, где это произошло, и что вы сделали, чтобы решить эту проблему. Опубликовать меньше кода. – usr
Обратите также внимание на то, что 'ExecuteScalarAsync' не должен быть' async' здесь: он просто возвращает исходную 'Task