Следующее является компактным и избегает цикла в вашем примере кода (и дает вам хорошие запятые):
System.out.println(Arrays.toString(list.toArray()));
Однако, как указывали другие, если у вас нет разумного toString ( ), реализованные для объектов внутри списка, вы получите указатели объектов (на самом деле, хэш-коды), которые вы наблюдаете. Это верно, находятся ли они в списке или нет.
Между тем я нашел более или менее случайное решение, поэтому я дам его здесь, если кому-то еще может быть интересно: В SelectCommd я использую «@ column1» в качестве параметра. В секции SelectParamter имя параметра должно быть «column1» (без @):
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
ProviderName="Npgsql"
SelectCommand="SELECT column2 from myTable where column1 = @column1)">
<SelectParameters>
<asp:Parameter Name="column1" Type="String"/>
</SelectParameters>
</asp:SqlDataSource>
Его по-прежнему невозможно выполнить «схему обновления» с компонентом sqldatasource (все еще получая ошибку), но теперь оператор select отлично работает во время выполнения, т. е. представление сетки на основе sqldatasource отображает выбранные данные по мере необходимости.