I think there's a high probability that the code in the call to a method of the "sctt" return null. Why not check that by wrapping the code in something like:
ds = sctt.utility.GetValue.ReadExcelFile(path, "SELECT * FROM [Sheet1$]");
if (ds == null)
{
MessageBox.Show("ds is null);
// code to abort ... or whatever
{
else
{
string statusid = UCA.Common.Utility.GetValue.getSQLValue("SELECT TOP (1) Asset_Status_ID FROM Asset_Status WHERE (Name = 'Available')");
if (ds.Tables[0].Rows.Count > 0) // ?
}
Or, use a try/catch/finally block.