Hej,
håller på att experimentera lite med ASP.NET och nhibernate, men har nu fått lite problem. Jag har en databas-tabell som heter User och jag har fått det att fungera med att lägga till användare. Nu skulle jag vilja hämta alla användare och från databasen och visa dessa på en aspx-sida med hjälp av gridview. Problemet är att min gridview aldrig visas, trots att listan innehåller element.
Users.aspx
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
<Columns>
<asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
<asp:BoundField DataField="Password" HeaderText="Password" SortExpression="Password" />
<asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" SortExpression="EmailAddress" />
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
<asp:BoundField DataField="LastLogon" HeaderText="LastLogon" SortExpression="LastLogon" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAllUsers"
TypeName="Joel.App_Code.TestUser"></asp:ObjectDataSource>
TestUser.cs
namespace Joel.App_Code
{
public class TestUser
{
private Configuration cfg;
private ISessionFactory factory;
public IList<User> GetAllUsers()
{
Configuration cfg = new Configuration();
cfg.Configure();
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
IList<User> userList = session.CreateCriteria(typeof(User)).List<User>();
transaction.Commit();
session.Close();
return userList;
}
}
}
Jag har mer kod men jag tror att det är denna som är mest relevant. Om jag gör följande på min metod GetAllUsers så ser jag att den retunerar data:
TestUser tu = new TestUser();
foreach (User user in tu.GetAllUsers())
{
System.Diagnostics.Debug.WriteLine(user.Id + " last logged in at " + user.LastLogon);
}
Frågan är varför min gridview inte fungerar? Den visas överhuvudtaget inte... Får ursäkta för eventuell ful-kod, är fortfarande i experiment-stadiet ;)