프로그래밍/WPF, Silverlight
[Silverlight] 3/4. 리스트 주고 받고 - 서버 탐색기와 린큐를 이용한 방법
당근천국
2011. 7. 22. 01:53
1/4. 한 프로젝트에서 웹서비스 만들기 2/4. DB연결 하기 3/4. 리스트 주고 받고 - 서버 탐색기와 린큐를 이용한 방법 4/4. 리스트 주고 받고 - 클래스를 이용한 방법 |
실버라이트에서 웹서비스를 통해 DB를 받아오는 방법은 몇가지가 있습니다.
그중 서버탐색기와 린큐를 이용한 방법을 다루 겠습니다.
테이블의 저장을 위해 웹서비스에 메소드를 만듭니다.
public string SetList(string strA, string strB, string strC) { string strReturn = ""; msComm = new SqlCommand("ListSet", msConn); msComm.CommandType = CommandType.StoredProcedure; msComm.Parameters.Add("@strA", SqlDbType.VarChar).Value = strA; msComm.Parameters.Add("@strB", SqlDbType.VarChar).Value = strB; msComm.Parameters.Add("@strC", SqlDbType.VarChar).Value = strC; //커낵션 오픈 msConn.Open(); try { msComm.ExecuteNonQuery(); strReturn = "성공"; } catch (Exception e) { strReturn = "실패"; } //커낵션 클로즈 msConn.Close(); //리턴 return strReturn; }
|
1.클래스 추가 |
서버설정만하면 코드 몇줄로 데이터를 받을수 있다는 장점이 있습니다.
1.프로젝트에 'LINQ to SQL 클래스'를 추가 합니다.
|
2. DB서버 연결 설정 |
2-1. 서버탐색기를 엽니다.
2-2. 데이터 연결에서 오른쪽클릭을 하고 '연결 추가'를 클릭합니다.
2-3. 'Microsoft SQL Server' 를 선택하고 계속을 누릅니다.
2-4. 서버이름이 서버 주소를 적고 SQL인증정보를 넣고 '연결 테스트'를 누릅니다.
2-5. '테스트 연결에 성공했습니다.' 메시지가 표시 되면 재대로 연결이 된겁니다.
2-6. 확인을 누릅니다.
|
3. 연결된 DB확인 |
3. 서버 탐색기에 서버가 표시됩니다.
사용하려는 테이블이 보이는지 확인 합니다.
|
4.테이블 등록 |
4. 아까 만든'LINQ to SQL 클래스'를 열어 서버탐색기에서 테이블을 끌어다가 클래스 위에 올려 놓습니다.
아래 처럼 테이블이 표시됩니다.
|
5.웹서비스 메소드 만들기 |
매개변수는 아까 드래그 해서 받은 테이블을 리스트로 선언합니다.
public List<tb_WebServiceTest> GetListDB() { DataClasses1DataContext db = new DataClasses1DataContext(); var oTable = from A in db.tb_WebServiceTest select A; return oTable.ToList(); // LINQ로 뽑아낸 내용을 List 형대로 변환해 리턴한다. }
|
6. 메시지를 받자 |
리스트를 받을때는 리절트를 ToList()로 받으시면 됩니다.
private void butGet_DB_Click(object sender, System.Windows.RoutedEventArgs e) { //리스트 DB 받기 sc.GetListDBAsync(); } void sc_GetListDBCompleted(object sender, ServiceReference1.GetListDBCompletedEventArgs e) { //리스트 겟 - DB dgDB.ItemsSource = (List)e.Result.ToList(); }
|
7. 확인 |
'리스트겟 - DB'을 누르면 DB에 있는 데이터가 넘어옵니다.
|
8.린큐 |
웹서비스에서 이용하면 모든 컬럼을 받을때 정말 유용합니다. 처리하고 자시고도 없저 ㅎㅎㅎ
제가 린큐를 재대로 못쓰는건지 원하는 컬럼만 뽑는게 안되더라고요 ㅡ,.ㅡ;;
아시는 분은 덧글좀;;;
그래서 테이블을 통체로 꺼내거나 할때 주로 사용합니다.