Ok, found the problem and it has nothing to do with DBUtils. In Application_Start I used the following code to see if the table exists and that there's data in it before allowing the user to display data.
Try
ResultSet1 = SQL1.ExecQuery("SELECT name FROM sqlite_master WHERE type='table' AND name = 'Part_inventory'")
Result = (ResultSet1.IsInitialized And ResultSet1.NextRow)
If Result = False Then ... (display message to user to get parts first)
Catch
usual code...
End Try
On Android, if the table doesn't exist, no problem; it just ignores it. On IOS if the table doesn't exist, the SELECT remains pending and once you create the table, it's locked because the SELECT does not successfully complete. Any subsequent call to DBUtils.UpdateRecord on this table will fail because it is locked.