Auto create database connection string using INI by C#.net
Posted by avaricesoft on July 25, 2008
Introduction
We can use INI file to auto generate the database connection string.
Background
It can be used in Webform and winForm.
Code::
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.avaricesoft.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.avaricesoft.com/contact.aspx”);
}
}
}
Regards,
Muhammad Kalim
Manager Business Development
[ muhamamd.kalim@avaricesoft.com ]