C#

C# DB connection

용성 2022. 1. 27. 11:00

DataBase

DBCon.cs

class DBcon
    {
        private static SqlConnection conn = null;
        public static string DBConnString { get; private set; }
        public static bool bDBConnCheck = false;
        private static int errorBoxCount = 0;

        public DBcon() { }

        public static SqlConnection DBConn

        {
            get
            {
                if (!ConnectToDB())
                {
                    return null;
                }
                return conn;
            }
        }
        /// Database 접속 시도
        public static bool ConnectToDB()
        {
            if (conn == null)
            {
                //서버명, 초기 DB명, 인증 방법
                DBConnString = String.Format("Data Source=({0});Initial Catalog={1};Integrated Security={2}; Timeout=3", "local", "dragon", "SSPI");
                conn = new SqlConnection(DBConnString);
            }

            try
            {
                if (!IsDBConnected)
                {
                    conn.Open();
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        bDBConnCheck = true;
                    }
                    else
                    {
                        bDBConnCheck = false;
                    }
                }
            }
            catch (SqlException e)
            {
                errorBoxCount++;
                if (errorBoxCount == 1)
                {
                }
                return false;
            }
            return true;
        }

        /// Database Open 여부 확인

        public static bool IsDBConnected
        {
            get
            {
                if (conn.State != System.Data.ConnectionState.Open)
                {
                    return false;
                }
                return true;
            }
        }

        /// Database 해제

        public static void Close()
        {
            if (IsDBConnected)
                DBConn.Close();
        }
    }

Form1.cs

public partial class Form1 : Form
    {
        private DataTable data_table = null;

        public Form1()
        {
            InitializeComponent();

            try
            {
                lock (DBcon.DBConn)
                {
                    if (!DBcon.IsDBConnected)
                    {
                        MessageBox.Show("db연결 안됨");
                        return;
                    }
                    else
                    {
                        SqlDataAdapter adapter = new SqlDataAdapter("select * from [dragon].[dbo].[user]", DBcon.DBConn);
                        data_table = new DataTable();

                        try
                        {
                            adapter.Fill(data_table);
                            dataGridView1.DataSource = data_table;

                            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
                        }
                        catch
                        {
                            MessageBox.Show("데이터 없음");
                        }

                        DBcon.Close();
                    }
                }
            } catch
            {
                MessageBox.Show("gridBox 오류");
            }
        }
    }

 

728x90