2014년 7월 15일 화요일

[예제]DataSet 수정, 입력예제[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

using System; 
using System.Data.OleDb; 
using System.Data; 


class DataReaderSample 

        public static void Main() 
        { 
                string ConStr = ("Provider=MSDAORA;data source=oraclejava;User ID=scott;Password=tiger"); 
                OleDbConnection Conn = new OleDbConnection(ConStr); 

                Conn.Open(); 

                //작업을 위한 Adapter를 하나 만든다. 
                OleDbDataAdapter adapter = new OleDbDataAdapter("select empno, ename from emp", Conn); 

                DataSet ds = new DataSet(); 
                
                adapter.Fill(ds,"EMP"); 

                //EMP Table의 내용을 화면에 뿌리자... 
                foreach (DataRow r in ds.Tables["EMP"].Rows) 
                { 
                        Console.WriteLine("EMPNO : {0}, ENAME : {1}", r["empno"], r["ename"]); 
                } 
      Console.WriteLine(); 
                Console.WriteLine(" 총 {0} 건 입니다." , ds.Tables["EMP"].Rows.Count); 

                //데이터를 변경 
                ds.Tables["EMP"].Rows[0]["ename"] = "홍길동"; 

                /*Update Method를 호출 하기 위해 CommandBuilder를 만들자. 
                하나의 테이블을 갱신하는 간단한 경우 라면 변경용 Query를 사용 할 필요가 없다. 
                단지 자동적으로 적절한 SQL을 만들고 그것을 관련된 DataAdapter에 연관 시키는 
                CommandBuilder 개체를 사용하면 된다. CommandBuilder에 DataAdapter를 인자로 주었는데 
                이렇게 하면 CommandBuilder가 생성될때 생성자에 의해 적절한 SQL 명령문이 만들어지며 
                그것이 DataAdapter에 연경 된다. */ 
                OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(adapter); 

                /* Update 메소드는 DataTable의 행들 중 변경된 데이터를 데이터베이스에 적용 한다. 
                * Rows 컬렉션안의 DataRow 개체에는 RowState 라는 속성이 있는데 이 속성은 
                * 그 행의 삭제, 추가, 수정 여부를 의미한다. 
                */          
                adapter.Update(ds, "EMP"); 

                //변경 후 
                Console.WriteLine(); 
                foreach (DataRow r in ds.Tables["EMP"].Rows) 
                { 
                        Console.WriteLine("EMPNO : {0}, ENAME : {1}", r["empno"], r["ename"]); 
                } 

                DataRow row = ds.Tables["EMP"].NewRow(); 
                row["empno"] = "8888"; 
                row["ename"] = "9길동"; 
        
                ds.Tables["EMP"].Rows.Add(row); 

                adapter.Update(ds, "EMP"); 

                //추가 후 
                Console.WriteLine(); 
                foreach (DataRow r in ds.Tables["EMP"].Rows) 
                { 
                        Console.WriteLine("EMPNO : {0}, ENAME : {1}", r["empno"], r["ename"]); 
                } 

                Console.WriteLine(" 총 {0} 건 입니다." , ds.Tables["EMP"].Rows.Count); 

        } 




================================================= 

[결과] 
EMPNO : 7369, ENAME : 홍길동 
EMPNO : 7499, ENAME : ALLEN 
EMPNO : 7521, ENAME : WARD 
EMPNO : 7566, ENAME : JONES 
EMPNO : 7654, ENAME : MARTIN 
EMPNO : 7698, ENAME : BLAKE 
EMPNO : 7782, ENAME : CLARK 
EMPNO : 7788, ENAME : SCOTT 
EMPNO : 7839, ENAME : KING 
EMPNO : 7844, ENAME : TURNER 
EMPNO : 7876, ENAME : ADAMS 
EMPNO : 7900, ENAME : JAMES 
EMPNO : 7902, ENAME : FORD 
EMPNO : 7934, ENAME : MILLER 
EMPNO : 9999, ENAME : 9길동 
EMPNO : 8888, ENAME : 9길동 

 총 16 건 입니다. 

EMPNO : 7369, ENAME : 오라클자바 
EMPNO : 7499, ENAME : ALLEN 
EMPNO : 7521, ENAME : WARD 
EMPNO : 7566, ENAME : JONES 
EMPNO : 7654, ENAME : MARTIN 
EMPNO : 7698, ENAME : BLAKE 
EMPNO : 7782, ENAME : CLARK 
EMPNO : 7788, ENAME : SCOTT 
EMPNO : 7839, ENAME : KING 
EMPNO : 7844, ENAME : TURNER 
EMPNO : 7876, ENAME : ADAMS 
EMPNO : 7900, ENAME : JAMES 
EMPNO : 7902, ENAME : FORD 
EMPNO : 7934, ENAME : MILLER 
EMPNO : 9999, ENAME : 9길동 
EMPNO : 8888, ENAME : 9길동 

EMPNO : 7369, ENAME : 오라클자바 
EMPNO : 7499, ENAME : ALLEN 
EMPNO : 7521, ENAME : WARD 
EMPNO : 7566, ENAME : JONES 
EMPNO : 7654, ENAME : MARTIN 
EMPNO : 7698, ENAME : BLAKE 
EMPNO : 7782, ENAME : CLARK 
EMPNO : 7788, ENAME : SCOTT 
EMPNO : 7839, ENAME : KING 
EMPNO : 7844, ENAME : TURNER 
EMPNO : 7876, ENAME : ADAMS 
EMPNO : 7900, ENAME : JAMES 
EMPNO : 7902, ENAME : FORD 
EMPNO : 7934, ENAME : MILLER 
EMPNO : 9999, ENAME : 9길동 
EMPNO : 8888, ENAME : 9길동 
EMPNO : 7777, ENAME : 9길동 
 총 17 건 입니다. 
Press any key to continue 


오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급 
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
(7/28)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/28)[기업100%환급]안드로이드개발자과정
(7/28)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(7/16)Spring3.X, MyBatis, Hibernate실무과정
(7/21)웹퍼블리싱 마스터
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(7/22)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/24)SQL기초에서실무까지
(7/29)안드로이드개발자과정
(8/05)MyBatis3.X, Hibernate4.X ORM실무과정

주말(10:00~17:50) 개강
(7/19)JSP,Ajax,jQUERY,Spring,MyBatis,Hibernate속성과정
(7/19)SQL초보에서 Schema Object까지
(7/19)C#,ASP.NET마스터
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정
(7/26)개발자를위한PLSQL,SQL튜닝,힌트
(8/02)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/23)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)

주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지

댓글 없음:

댓글 쓰기