2011-05-02 2 views
0

내보기로 데이터를 전달해야합니다.
내 ActionResult이컨트롤러에서 볼 때 어떤 데이터 유형을 전달해야합니까?

public ActionResult Index() 
    { 
     SiteMapData sp = new SiteMapData(); 
     ViewData["folders"] = sp.GetFolders(); 
     return View(); 
    } 

sp.GetFolders 난 내보기에서 데이터에 갈 필요가 어떻게 DataView를

internal DataView GetFolders() 
    { 
     SqlCommand cmd = new SqlCommand("usp_PGF_Select"); 
     cmd.CommandType = CommandType.StoredProcedure; 

     SqlConnection myConnection = Util.GetConnection(); 
     cmd.Connection = myConnection; 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     DataView dView = ds.Tables[0].DefaultView; 
     return dView; 
    } 

를 반환합니다.
나는이 시도하지만

@foreach (var c in (System.Data.DataView)ViewData["folders"]) 
{ 
    <p>@c.SMF_Name</p> 
} 

어쩌면 내가 다른 데이터 유형을 전달할 필요가 작동하지 않을거야?

답변

1

데이터베이스 구조를 나타내는 클래스를 만들고 그 결과를 해당 개체에 매핑하는 개체 관계형 매핑 (ORM)을 수행해야합니다. 물론 수동으로이 작업을 수행 할 수도 있지만 ORM을 사용하는 것이 좋습니다!

LINQ to SQL 또는 Entity Framework를 사용해보십시오. 많은 훌륭한 가이드가 있습니다.

그럼 훨씬 더 쉽게 작업 할 수있는 유형 System.Collections.Generic.List<MyTable>을 반환 할 것입니다.

+0

나는 알고 있지만,이 프로젝트에서 나는 작동 할 웹 사이트에 연결된 mssql 2000 db를 사용해야한다. 나는 단지 백 오피스를 개발한다. – eyalb

관련 문제