DELETE FROM AA FROM AA aa INNER JOIN BB bb ON aa.key = bb.key WHERE ~

 

mssql에서 delete와 inner join 을 같이 쓸 때 특이점은 from이 두 번 나온다는 것이다.

dataGridView1.CellValueChanged += dataGridView1_CellValueChanged;


void dataGridView1_CellValueChanged(object sender, EventArgs e)
            {
                int rowIndex = dataGridView1.CurrentCell.ColumnIndex;
                if (dataGridView1.Columns[rowIndex].HeaderText == "Column2")
                {
                    MessageBox.Show("success");
                }
            }

Column에서 Enter키나 Tab 키를 눌렀을 때 Column의 Header Text를 비교 한 뒤 해당 하는 Cell이면

메시지 박스에 success 출력

 

DataGridView 셀의 값에 변경 내용을 검색 하려면

 CellValueChanged 이벤트

 

DataGridView 셀의 상태 변경을 감지 하려면

 CellStateChanged 이벤트

 

1.DataSet 
 - Db (mssql, mysql, oracle...) 에 있는  Database  역활을 합니다 (개체형태의 database)
 - 따라서.. DataTable을 여러개 가질수 있습니다
 - ex) https://msdn.microsoft.com/ko-kr/library/aeskbwf7(v=vs.110).aspx

2.DataTable 
 - DB의 Table 역활을 합니다. (개체형태의 table)
 - 실제 db-table처럼 컬럼과 대응하는 값이 있습니다
 - https://msdn.microsoft.com/ko-kr/library/system.data.datatable(v=vs.110).aspx

3.DataGridView
 - 데이터 바인딩이 가능한 컨트롤입니다
 - DataTable과 바인딩을 맺을수 있습니다
 - ex) http://www.csharpstudy.com/WinForms/WinForms-datagridview.aspx


참고로, DataRow, DataColumn, SqlConnection., SqlDataAdapter 클래스도 존재합니다. 역할은 이름에서 유추할수 있습니다.

- SqlConnection : 설정된 연결문자를 이용해서 db-open/close를 담당합니다
- SqlDataAdapter : 말그대로 어뎁터입니다. 이기종간 (여기선 DataSet - DB) 데이터 중계 역활을 합니다
- DataSet : 어뎁터를 통해서 값을 받거나 수정된 값을 가집니다
- DataTable : 여러개의 테이블중 1개의 테이블에 대응됩니다. (join  테이블도 포함). 
- DataRow : table의  1개 row값을 가집니다
- DataColumn : table의 1개 column값을 가집니다.


'DB' 카테고리의 다른 글

DB 정규화  (0) 2019.01.09
statement와 preparedStatement의 차이  (0) 2019.01.05
프로시저란?  (0) 2018.12.26
left, right, inner, outer, natural join  (0) 2018.11.20
DB 성능 순서  (0) 2018.09.20

+ Recent posts