Obter valor int do comando em c #

string sql = "Select UserId From User where UserName='Gheorghe'";


SqlCommand cmd=new SqlCommand(sql, connection);
cmd.ExecuteScalar(); //this statement return 0

mas eu quero pegar o id do usuario? Como posso conseguir?