Auto create database connection string using INI by C#


Introduction

We can use INI file to auto generate the database connection string.

Background

It can be used in Webform and winForm.

Using the code

using System;

using System.Resources;

using System.Collections.Generic;

using System.Runtime.InteropServices;

using System.Text;

using System.IO;

using System.Data;

 

namespace www.treaple.com

{

    public class DBBase

    {

        public string hostName = null;

        public string baseName = null;

        public string loginName = null;

        public string passWord = null;

 

        public DBBase()

        {

        }

    }

 

    public class DBConnectioin : DBBase

    {

        private INI ini;

        public static string conStr = null;

 

        public DBConnectioin()

        {

            ini = new INI();

        }

 

        private void Read()

        {

            ini.GetPara();

            this.hostName = ini.hostName;

            this.baseName = ini.baseName;

            this.loginName = ini.loginName;

            this.passWord = ini.passWord;

        }

 

        public void Write()

        {

            ini.hostName = this.hostName;

            ini.baseName = this.baseName;

            ini.loginName = this.loginName;

            ini.passWord = this.passWord;

            ini.SetPara();

        }

 

        public void GetConString()

        {

            this.Read();

            conStr = "workstation id=" + this.hostName + ";data source=" + this.hostName + ";initial catalog=" + this.baseName + ";user id=" + this.loginName + ";password=" + this.passWord;

        }

    }

 

    public class INI : DBBase

    {

        protected string path = null;

        protected string fileName = "Config.ini";

 

        [DllImport("kernel32")]

        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        [DllImport("kernel32")]

        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

 

        public INI()

        {

            this.path = Directory.GetCurrentDirectory();

        }

 

        private bool Write(string section, string key, string value)

        {

            try

            {

                WritePrivateProfileString(section, key, value, this.path + "\\" + this.fileName);

                return true;

            }

            catch

            {

                return false;

            }

        }

 

        private string Read(string section, string key)

        {

            StringBuilder temp = new StringBuilder(255);

            int i = GetPrivateProfileString(section, key, "", temp, 255, this.path + "\\" + this.fileName);

            return temp.ToString();

        }

 

        public void GetPara()

        {

            this.hostName = Read("Info", "HostName");

            this.baseName = Read("Info", "baseName");

            this.loginName = Read("Info", "LoginName");

            this.passWord = Read("Info", "PassWord");

        }

 

        public void SetPara()

        {

            Write("Info", "HostName", this.hostName);

            Write("Info", "baseName", this.baseName);

            Write("Info", "LoginName", this.loginName);

            Write("Info", "PassWord", this.passWord);

        }

    }

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace www.treaple.com

{

    public partial class Form1 : Form

    {

        DBConnectioin dBConnectioin = new DBConnectioin();

        public Form1()

        {

            InitializeComponent();

        }

 

        private void btnSetStr_Click(object sender, EventArgs e)

        {

            dBConnectioin.hostName = txtHostName.Text.Trim();

            dBConnectioin.baseName = txtBaseName.Text.Trim();

            dBConnectioin.loginName = txtLoginName.Text.Trim();

            dBConnectioin.passWord = txtPassWord.Text.Trim();

            dBConnectioin.Write();

        }

 

        private void btnGetStr_Click(object sender, EventArgs e)

        {

            dBConnectioin.GetConString();

            txtConStr.Text = DBConnectioin.conStr;

        }

 

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            System.Diagnostics.

            Process.Start("http://www.treaple.com/Contact_Us.htm");

        }

 

    }

}