我的做法是写一个公共的dll.在这里建立数据库的链接,在程序启动时由主Form把connstring传给dll,以后每个form都来dll中来open链接就行了,当然你也可以把connstring放到ini中,这样方便修改。公共类中CTM_LIB.PublicLib.cs: public bool OpenConnection(string strConnectionString)
{
try
{
gcnnData =new System.Data.OleDb.OleDbConnection(strConnectionString);
gcnnData.Open();
}
catch(System.Exception Err)
{
mstcErrorInfo.Description=Err.Message;
gcnnData.Close();
return false;
}
// finally
// {
// gcnnData.Close();
// }
return true;
}主程序给链接串:
[STAThread]
static void Main()
{
CTM_LIB.PublicLib mm=new CTM_LIB.PublicLib();
mm.strSystemName="省级专卖管理系统(V1.0)";
//连接数据库
if (!mm.OpenConnection("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=CTM;Data Source=211.5.6.130;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=tongshiwei;Use Encryption for Data=False;Tag with column collation when possible=False"))
{
System.Windows.Forms.MessageBox.Show("数据库连接失败, 程序无法启动 ",mm.strSystemName);
Application.ExitThread();
return;
}
Application.Run(new frmMain());
}各子form的调用 if (CTM_LIB.PublicLib.gcnnData.State != ConnectionState.Open)
{
CTM_LIB.PublicLib.gcnnData.Open();
}
{
try
{
gcnnData =new System.Data.OleDb.OleDbConnection(strConnectionString);
gcnnData.Open();
}
catch(System.Exception Err)
{
mstcErrorInfo.Description=Err.Message;
gcnnData.Close();
return false;
}
// finally
// {
// gcnnData.Close();
// }
return true;
}主程序给链接串:
[STAThread]
static void Main()
{
CTM_LIB.PublicLib mm=new CTM_LIB.PublicLib();
mm.strSystemName="省级专卖管理系统(V1.0)";
//连接数据库
if (!mm.OpenConnection("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=CTM;Data Source=211.5.6.130;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=tongshiwei;Use Encryption for Data=False;Tag with column collation when possible=False"))
{
System.Windows.Forms.MessageBox.Show("数据库连接失败, 程序无法启动 ",mm.strSystemName);
Application.ExitThread();
return;
}
Application.Run(new frmMain());
}各子form的调用 if (CTM_LIB.PublicLib.gcnnData.State != ConnectionState.Open)
{
CTM_LIB.PublicLib.gcnnData.Open();
}
最好举例,谢谢
参见:http://www.csdn.net/cnshare/soft/16/16749.shtm