Я сделал библиотеку классов специально для работы с БД, соответственно все коннекшины хранятся в этой библиотеке. Компилируешь и полученную dll суёшь в вэб-проект.
Если нетрудно дай пожалуйста ссылки где можно почитать про реализацию
Я поступал аналогично, а для инита коннектов сделал класс инициализации, в котором статический метод выдаёт строку для текущей сессии. А берётся эта строка из стандартного метода, который разбирает определённый xml-файл, в котором прописаны параметры коннекта. Примерно так:
namespace SQLobjects
{
public class ApplicationAjustings
{
private static string generalConnect = "";
private static string generalHeapPath = "";
public static string DBdocConnect()
{ return generalConnect; }
public static void SetConnect(string generalConnectionString)
{ generalConnect = generalConnectionString; }
public static string DBdocHeapPath()
{ return generalHeapPath; }
public static void SetSrcPath(string srcFilesNetPath)
{ generalHeapPath = srcFilesNetPath; }
}
}
public static class CommonConnect
{
public static string DBdocConnect()
{
/* *********************************************
* Пытаемся читать xml-файл и построять из него
* ConnectionString.
* *********************************************/
string connectStr = "", xmlcontent; ;
XmlDocument confDoc = new XmlDocument();
try
{
FileStream inXml = new FileStream("MyConfig.xml", FileMode.Open);
StreamReader input = new StreamReader(inXml, Encoding.GetEncoding(1251));
xmlcontent = input.ReadToEnd();
input.Close(); inXml.Close();
confDoc.LoadXml(xmlcontent);
XmlNode tag;
string DS, DB, usr, pwd, authent;
tag = confDoc.GetElementsByTagName("server")[0];
DS = tag.InnerText;
tag = confDoc.GetElementsByTagName("database")[0];
DB = tag.InnerText;
tag = confDoc.GetElementsByTagName("method")[0];
authent = tag.InnerText;
// далее всяческий разбор параметров коннекта
// ..........................................
}
catch (Exception exc)
{
connectStr = "";
}
return connectStr;
}
}
Установить коннект так:
protected void Page_Load(object sender, EventArgs e)
{
ApplicationAjustings.SetConnect(CommonConnect.DBdocConnect());
}
Имя файла конфиги можно задавать где-нибудь ещё, или пользовать стандартное.
Коннект (или коннекшнстринг) можно лудить в стартовой форме и пихать, например, в Session, или в Application, и т.п.
В общем, это всё для примера.
Отец, конечно, сам может. Но у быка лучше получается.
|