SIGN UP MEMBER LOGIN:    
ARTICLE

Auto create database connection string using INI by C#

Posted by John Jiang Articles | ADO.NET in C# July 22, 2008
This article shows how to auto create database connection string using INI by C# .
Reader Level:
Download Files:
 

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");

        }

 

    }

}

Login to add your contents and source code to this article
share this article :
post comment
 

Thanks a lot ! firs ,my english is very poor second,your method is better than my,i haven't write into INI for the connection of my programs. thrid,I want to ask you a question . I have two tables ,they are different in their structural ,and there primary key is different ,can I use like this: dataset1.merge(dataset2,true,missionschemaaction.addwithkey)? when I write like this,my dataset1 doesn't change,why?

Posted by xu Apr 20, 2009

i'll tell u aftr check

Posted by jak singh Mar 31, 2009
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
    Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Nevron Gauge for SharePoint
Become a Sponsor