반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

사진과 컴퓨터

[c#]싱글톤으로 DB매니저 작성하기 본문

컴퓨터

[c#]싱글톤으로 DB매니저 작성하기

주성 2022. 12. 5. 09:36

윈폼으로 프로젝트를 진행하면 데이베이스에 접근해 데이터를 INSERT하거나 UPDATE, SELECT등 여러가지로 작업을 해야할 일이 많다. 이때 매번 데이터베이스를 열고 쿼리 실행하고, 값 받고 다시 데이터베이스 닫는 일련의 과정을 거치기에는 너무 귀찮으니 해당 작업을 처리해 줄 클래스를 만들어  사용한다.

그런데 이렇게 자주 있는 작업을 그냥 클래스로 선언해주면 각  Form 이나 cs파일에서 매번 해당 클래스를  선언해야 하니 비효율적이다. 따라서 이번에는 DB에 접근해 값을 받아오는 클래스를 싱글톤으로 작성해 보았다.

 

 

    internal class DBManager
    {
        static DBManager DBm = new DBManager();

        static public DBManager GetInstance()
        {
            return DBm;
        }

        //파라미터로 쿼리를 받아 실행 후 결과를 데이터 테이블로 반환
        public DataTable Execute_Query(string query)
        {
            using (MySqlConnection connection = new 
            MySqlConnection ("Data Source=(DB ip 주소); Database=(사용DB명); Uid=(id입력); 
            Pwd=(패스워드 입력); CharSet=utf8"))
            {
                connection.Open();

                MySqlCommand cmd = new MySqlCommand(query, 
                connection);
                MySqlDataReader reader = cmd.ExecuteReader();

                DataTable dt = new DataTable(); //DataTable dt 정의
                dt.Load(reader);    //reader로 dt에 데이터 로드

                connection.Close();
                return dt;
            }
        }
    }

사용법은 아래와 같다

 

DBManager.GetInstance().Execute_Query(query);

이렇게 작성하면 이제 프로젝트 내 어디서나 query를 실행하고 그 결과를 DataTable의 형태로 받아 볼 수 있다.

반응형