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;
}
}