Там есть опечатка? У вас есть два вызова в базу данных:
showresult.ExecuteNonQuery();
Это не вернет значение, и я не уверен, почему оно у вас будет
string actresult = ((string)shresult.ExecuteScalar());
Если у вас нет переменной shresult, этот запрос может привести к ошибке. Что такое переменная shresult?