O EmptyDataText é uma propriedade que recebe uma string não tem muito segredo, de uma pesquisada na net para encontrar algum artgo caso haje necessário. Acredito que se você não definir o tamanho do campo ele irá esticar a grid no máximo que conseguir. Abraços...
Você terá que informar em todos os TextBox, para deixar mais dinâmico você pode tentar dar um foreach no seu formulário para tentar adiconar dinamicamente, mas não tenho certeza que será possível. Abraços...
Vá no seu Solution Explorer e clique em um botão chamado Show All Files e veja se o seu banco esta nesta pasta com o icone branco. Esta opção mostra os arquivos que estão no caminho fisico mas não estão no projeto, ae temos que adiciona-los no projeto. Abraços...
A idéia da session é essa mesmo, a diferença é que como vai usar c# vai ter que converte-la quando for alimentar a array novamente. Sobre array de uma olhada: http://www.macoratti.net/aspn_arr.htm Abraços...
A dica do Jonathan é válida, mas se esta aprendendo o mais fácil é armazenar sua ArrayList em uma Session, na página seguinte basta declarar um novo array recebendo essa session. Conhece session?? Abraços...