I have a method that uses ODBC to go out and get some data in relation to a database however I need to change my method to async so that it doesn't freeze the form but still loads the data I see there is a ReadAsync method on the ODBC reader but how does one use that.
public decimal GetFreeStockFromSage(string productCode)
{
        string sageDsn = ConfigurationManager.AppSettings["SageDSN"];
        string sageUsername = ConfigurationManager.AppSettings["SageUsername"];
        string sagePassword = ConfigurationManager.AppSettings["SagePassword"];
        decimal retDecimal =(decimal) 0.00;
        //using (var connection = new OdbcConnection("DSN=SageLine50v24;Uid=Manager;Pwd=;"))
        using (var connection = new OdbcConnection(String.Format("DSN={0};Uid={1};Pwd={2};", sageDsn, sageUsername, sagePassword)))
        {
            string sql = string.Format("SELECT 'STOCK_CODE' ,'Description',QTY_IN_STOCK - QTY_ALLOCATED AS 'FreeStock'  FROM 'STOCK' where STOCK_CODE = '{0}'", productCode);
            using (var command = new OdbcCommand(sql, connection))
            {
                connection.Open();
                using (var reader = command.ExecuteReader())
                {
                    while (reader.ReadAsync())
                    {
                          retDecimal = Convert.ToDecimal(reader["FreeStock"]);                          
                    }
                }
            }
            return retDecimal;
        }
    }           
 
    