프로그램/C# - Study / / 2010. 10. 19. 14:40

C# - Ex07

반응형

using System;


using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Ex07
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        ///정렬 버튼
        private void button1_Click(object sender, EventArgs e)
        {
            // 10/19

            //DataTable table =
            //    dataGridView1.DataSource as DataTable;
            //table.Sort = "";//오류

            DataView view =
                dataGridView1.DataSource as DataView;

            if (string.IsNullOrEmpty(view.Sort) ||
                view.Sort.ToLower().IndexOf("desc") > -1)
            {
                view.Sort =
                    "contactname ASC";//ORDER BY구문과 동일한 형식
            }
            else
            {
                view.Sort =
                    "contactname DESC";//ORDER BY구문과 동일한 형식
            }
        }

        //필터링 버튼
        private void button2_Click(object sender, EventArgs e)
        {
            DataView view = dataGridView1.DataSource as DataView;

            //A - Z 중 하나를 추출
            char ch = (char)(new Random().Next(65, 91));
                             //WHERE 와 동일한 구문
            view.RowFilter = string.Format("contactname LIKE '{0}%'", ch);

            MessageBox.Show("Filtered by " + ch);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "SERVER=.;DATABASE=Northwind;INTEGRATED SECURITY=SSPI;";

            //2. 명령 객체 생성 및 [SQL, 연결객체] 설정
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT customerid, companyname, contactname, contacttitle, country, phone, fax FROM customers ";

            //데이터 처리 어댑처 사용
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();


            // Open - > read &set -> Close 를 해준다.
            //이미 열려있으면 Open 및 Close 생략 해준다.
            da.Fill(ds, "Customers"); //DataSEt에 Customers 테이블 만들고 그 테이블에 데이터를 저장
            // 10/19
            //테이블은 sort, 필더링 기능은 없다 View는 sort, 필더링 기능이 있다.
                                        // View로 주었기 떄문에 sort 와 바인딩 가능
            dataGridView1.DataSource = ds.Tables[0].DefaultView; //View Binding

            ///////////
                       
            //DataSource는 Table 이지만
            //내부적으로 Binding 할 떄는 View 에 Binding
            dataGridView2.DataSource = ds.Tables[0];
        }
    }
}

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유