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

}

}

}