2017-06-03 58 views
-1

我有下面的代码,任何人都可以请告诉我,如果我可以让这个异步任务如何SqlDataReader的转换任务异步

public MDTO GetIe(MDTO dtoItem) 
    { 

     string[] Tables = new string[] { "C", "CValue", "SP", "Ar", "P", "CR", "QC", "SR" }; 
     using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["tESTp"].ConnectionString)) 
     { 
      using (SqlCommand command = new SqlCommand("GetItem", connection)) 
      { 
       DataSet Result = new DataSet(); 
       command.CommandType = CommandType.StoredProcedure; 

       command.Parameters.Add("@ProjectId", SqlDbType.VarChar); 
       command.Parameters["@ProjectId"].Value = dtoItem.ProjectId; 


       connection.Open(); 
       Result.EnforceConstraints = false; 
       Result.Load(command.ExecuteReader(CommandBehavior.CloseConnection), LoadOption.OverwriteChanges, Tables); 
       dtoItem.SR = Result; 
      } 
     } 
     return dtoItem; 
    } 
+0

切换方法的签名,将其标记为'async',并使用'async'方法和'awating'方法 – VMAtm

回答

1

您Command.ExecuteReader却更改为异步版本:

public async Task<MDTO> GetIeAsync(MDTO dtoItem) 
{ 
    ... 
    connection.Open(); 
    Result.EnforceConstraints = false; 

    SqlDataReader dataReader = await command.ExecuteReaderAsync(CommandBehavior.CloseConnection); 
    Result.Load(dataReader, LoadOption.OverwriteChanges, Tables); 
    dtoItem.SR = Result; 
    ... 
}