You are using ExecuteNonQuery which only return an integer values showing the number of records affected. You have to use ExecuteReader so that you can get adatareader with which you can bind the gridview or use adapter and fill a dataset using adapter.Fill() method and give it as datasource to gridview. That is y u r getting the error bcoz integer is neither of them ( IListSource, IEnumerable, or IDataSource. ).
Hope it helps you solve your problem.