2007. 6. 26. 17:10

뭐 거창하게 제목을 붙을 것도 없고 공개라 할 것도 없다.
다만 다음에 또 비슷한 작업을 할 때 편하기 위해서 여기다 올려 놓는 것 뿐이니 돌을 던지거나
하지는 말아줬으면 좋겠다.

   public class AccessUtil
    {
        //클래스 맴버
        private System.Data.OleDb.OleDbConnection MdbConnector = new OleDbConnection();            //Access File Opener
        private string DataSource;

        /// <summary>
        /// 생성자
        /// </summary>
        /// <param name="dataSource"></param>
        public AccessUtil(string dataSource)
        {
            DataSource = dataSource;
        }

        /// <summary>
        /// 쿼리를 실행시킨다.
        /// </summary>
        /// <param name="Query">쿼리</param>
        /// <returns>쿼리가 반영된 레코드의 갯수를 린턴한다.</returns>
        public int ExecuteSQL(string Query)
        {
            int nRowCount = 0;

            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + DataSource); //"c:\\TEMP\\510001.mdb");
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = con;
            cmd.CommandText = Query;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();

            return nRowCount;
        }

        /// <summary>
        /// 쿼리 결과를 리턴해 준다.
        /// </summary>
        /// <param name="Query">쿼리</param>
        /// <returns>쿼리의 실행결과를 리턴한다.</returns>
        public DataSet FillSQL(string Query)
        {
            DataSet ds = null;

            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + DataSource); //"c:\\TEMP\\510001.mdb");
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataAdapter ad = new OleDbDataAdapter(cmd);
            cmd.Connection = con;
            cmd.CommandText = Query;

            con.Open();
            ad.Fill(ds);
            con.Close();

            return ds;
        }       
    }

위의 소스에서 소개하고 있는 AccessUtil.cs의 경우 열려고하는 mdb파일의 경로는 생성자로
넘겨주는 방식을 취하고 있다. 이  class에서 제공하고 있는 두 개의 method는

 -ExecuteSQL()
 -FillSQL()

은 모두 인자로 쿼리를 넘길 수 있도록 되어 있으며 Insert, Update, Delete등의 쿼리는
ExecuteSQL을 사용하면 된다. FillSQL은 Select구문을 사용할 수 있게 되어 있다.
예외처리 등은 따로 하지 않았기 때문에 혹시나 참조하실 분은 따로 예외처리를 해주시길
바란다.

-------------------------------------------------------
김영욱 Microsoft
MVP 2006~2007
-------------------------------------------------------
Email: iwinkey@hotmail.com
Blog: winkey.tistory.com
Phone: 016-817-0063
www.winkey.pe.kr
www.vismuri.com
-------------------------------------------------------