예제

Visual Studio 2008을 이용해 LINQ To SQL을 테스트하는 간단한 예제이다.

DataList 컨트롤에 바인딩하기

  1. 테이블 생성, 여기서는 NickName 컬럼을 가진 Member라는 테이블을 사용한다.
  2. 서버 탐색기(메뉴->보기->서버 탐색기)를 연 다음 DB서버 추가.
  3. 솔루션 탐색기에서 추가->새 항목->데이터->LINQ to SQL 클래스 생성
  4. 열려진 dbml 파일로 테이블을 끌어 넣고 저장한다.
  5. 테스트할 aspx 페이지를 만든 다음 아래 태그를 넣는다.
    <asp:DataList ID="Grid1" runat="server"> <ItemTemplate> <%#Eval("nickname") %> </ItemTemplate> </asp:DataList>
  6. CS 파일(Code Behind)를 열어 아래 코드를 넣는다. 앞서 만든 파일 이름이 DataClasses1.dbml 이면
    protected void Page_Load(object sender, EventArgs e){ DataClasses1DataContext db = new DataClasses1DataContext(); var query = from m in db.Member select m; Grid1.DataSource = query; Grid1.DataBind(); }
  7. 해당 aspx 페이지에서 "웹 브라우저로 보기"하여 테스트한다.

XML 파일로 만들기

다음 코드는 Linq에서 읽어들여 xml로 결과를 출력하는 예제이다.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; using System.Xml; using System.Xml.Linq; namespace WebApplication1 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DataClasses1DataContext db = new DataClasses1DataContext(); IEnumerable<DataClasses1_Member> query = from m in db.Member select m; Response.Buffer = false; Response.Clear(); Response.ContentType = "application/xml"; using (XmlWriter writer = XmlWriter.Create(Response.OutputStream)) { XElement xmlRoot = new XElement("root"); foreach (DataClasses1_Member q in query) { XElement xmlMember = new XElement("member", new XAttribute("idx", q.idx), new XElement("nickname", q.nickname), new XElement("password", q.password), new XElement("description", q.DataClasses1_Community.name) //FK 관계의 경우 자동으로 컬렉션 등록되기 때문에 굳이 JOIN문을 이용할 필요가 없다. ); xmlRoot.Add(xmlMember); } xmlRoot.WriteTo(writer); Response.Flush(); } Response.End(); } } }

관련 문서

powered by Moniwiki | themed by clockoon
last modified 2008-12-30 10:44:14
Processing time 0.3611 sec