Мой код:Добавить асинхронной результат метода в dtatable столбец
public async Task<DataRow> GetForm(int id)
{
DataRow row = await ExecuteOneRowQueryAsync(id);
DataTable dt = await SelectAsync();
row.Table.Columns.Add("Col", typeof (DataTable));
row["Col"] = dt; //throws
return row;
}
Он выдает ошибку, когда я хочу, чтобы присвоить DataTable значение в ячейку Coll
. Это говорит
Тип дт является System.Threading.Tasks.Task`1 [System.Data.DataTable] но DataTable типа, как ожидается.
Я думаю, что что-то не так с частью кода асинхронного кода. Есть ли способ заставить его работать?
EDIT
Метод вызывается из контроллера Web API
public class Controller: ApiController
{
public Task<DataRow> Get(int id)
{
return _service.GetForm(id);
}
}
Предположим, вам нужно иметь 'ждать SelectAsync() результат;', но не видя недостающий код, трудно рассказать. – Equalsk
@Equalsk - Я думал, что, но тогда назначение завершится неудачно, поскольку 'dt' получает явный тип' DataTable', а не объявляется 'var'. Так что здесь происходит что-то странное, ошибка не там, где указывает OP, или это * не является фактическим кодом *. –
'await SelectAsync(). Результат не будет компилироваться – user49126