Query med random row, virker ikke i c#
Hej,Jeg har lavet en query i Access der skal returnere en enkelt random række. Jeg har brugt denne fremgangsmåde: http://support.microsoft.com/kb/287682/EN-US/
Det virker fint når jeg kører queryen i Access, men når jeg prøver at execute queryen fra mit c# projekt, så får jeg altid den første row, uanset hvad.
Query:
SELECT TOP 1 Banners.BannerId, Banners.ImageUrl, Banners.Href, Banners.Target, Campains.CampainId
FROM Banners INNER JOIN (Campains INNER JOIN Users ON Campains.UserID = Users.UserId) ON Banners.CampainId = Campains.CampainId
WHERE (((Campains.Credits)>0))
ORDER BY Rnd(Len([Campains.CampainId]));
C#
public Banner()
{
_dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\web\\gbads\\data\\gbads.mdb");
getBanner(_dbConnection);
}
public void getBanner(OleDbConnection connection)
{
OleDbCommand command = new OleDbCommand("exec getBanner", connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
reader.Read();
Id = reader.GetGuid(0).ToString();
ImageUrl = reader.GetString(1).ToString();
Href = (!reader.IsDBNull(3) ? reader.GetString(2) : "");
Target = (!reader.IsDBNull(3) ? reader.GetString(3) : "");
CampainId = reader.GetGuid(4).ToString();
connection.Close();
}
Hvorfor kan jeg ikke få denne random row når jeg executer min query fra C#? Hvis det ikke kan lade sig gøre, hvilken måde er så den bedste?
