2010-08-16 5 views
0

나는 작업중인 그림 등급 응용 프로그램에 문제가 있습니다. 저는 C#으로 정기적으로 프로그램을 작성하지 않습니다. 그래서 누군가가 도울 수 있다면, 저에게 지금까지 일어난 일 중 가장 좋은 일이 될 것입니다 !!C에서 이미지 평가 응용 프로그램 문제 #

Visual Studio 2008에서 프로그래밍 중이며 응용 프로그램의 기반은 Microsoft Access에서 만들어집니다.

내가 Access에서 테이블을 만들었 나는 그것에서 어떤 정보를 얻기 위해 노력하고 있어요 :

그래서 내가 할 노력하고 무엇을. 테이블 이름은 dogodek이며 id_dogodek, id_category, title, author, ratings 및 picture (그냥 URL-s)로 구성됩니다. 응용 프로그램에서 표를 채울 수는 있지만 가장 높은 등급으로 그림을 표시하는 방법에 문제가 있습니다. 기지에서 정보를 읽어 와서 사용하는 법을 모르겠습니다.

이것은 내가 한 것입니다!

private void images() 
{ 
    OleDbConnection conn = new OleDbConnection(WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString); 
    conn.Open(); 

    string sql = "SELECT id_dogodek,picture,MAX(ratings) FROM 'dogodek'"; //it do not work 


    OleDbDataAdapter da = new OleDbDataAdapter(sql,conn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    //How to load the image to (Image1)?? 
    Image1.ImageUrl = "images/" + ds.Tables[0].Rows[0]["fotografija"].ToString(); 

    conn.Close(); 
} 

도와주세요 !!

+0

, 당신은 평가 DESC "?? –

+0

바박의 권리 BY 간단한 ORDER 아닌 다른 뭔가를 의미합니까"어떻게 최고 등급과 함께 사진을 제시 "작동합니다 '등급'에 대한 열 형식은 - 지금은 실제로 스칼라 숫자 형식 (int 또는 무엇이든)이라고 가정하고 다른 열을 사용하지 않는 것 같기 때문에 SQL을 'select 그림을 dogodek order by 등급 desc "그리고 나서 (AFAICT) 열 인덱스를 fotografija에서 –

답변

1
SELECT TOP 1 id_dogodek,picture,ratings 
FROM 'dogodek' 
ORDER BY ratings DESC 

MAX (평가) 각 id_dogodek에 대한 평가를 많이 가지고 다른 테이블이 있다면 당신은 즉, (GROUP BY) 그룹화 할 때 전용입니다. 그것은 무엇을 분명하지 않지만

+0

으로 변경하면 Access에서 'top 1'이 작동합니까? 아마도 SQL Server에만 국한된 기능이라고 생각했기 때문에 주석의 일부로 남겨 두었을 것입니다. –

+0

네, TOP X가 들어 있습니다. GUI 쿼리 디자이너에서는 리본의 "return :"상자로 표시됩니다. – SteveCav

0

SELECT * 
FROM 
(
    SELECT ROW_NUMBER() over (ORDER BY ratings DESC) AS 'Order' , id_dogodek,picture,ratings 
    FROM dogodek 
) D 
WHERE [Order] =1