提供对数据库处理程序的全局访问

时间:2013-04-23 11:10:24

标签: c# persistence

我正在用C#开发一个应用程序(但这不相关,因为我不想使用任何语言工具),我需要处理与数据库的连接。我会避免在每个方法中明确创建连接,例如:

private void btnAnteprima_Click(object sender, EventArgs e) 
{
    SqlConnection myConnection = new SqlConnection("user id=***;" +
                   "password=***;server=***;" +
                   "database=***");
    myConnection.Open();
    SqlDataReader myReader = null;
    SqlCommand myCommand = new SqlCommand("select * from *** where IDCliente=*", myConnection);
    myReader = myCommand.ExecuteReader();

    while (myReader.Read())
    {
        MessageBox.Show(myReader["xyz"].ToString());
    }           
}

我会这样:

private void btnAnteprima_Click(object sender, EventArgs e) 
{
    SqlReader myReader = DbFactory.ExecuteQuery("select * from *** where IDCliente=*");

    while (myReader.Read())
    {
        MessageBox.Show(myReader["xyz"].ToString());
    }           
}

据我所知,单身模式的使用在性能方面毫无用处甚至是有害的。我徘徊在工厂模式来实现这一点,但我无法弄清楚如何做到最好。你有这样的例子,纸吗?我不想重新发明轮子,我只想使用正确的设计模式,并了解车轮后面的内容。

1 个答案:

答案 0 :(得分:0)

使用Microsoft Enterprise Library查看数据访问块。

http://msdn.microsoft.com/en-us/library/ff664408(v=pandp.50).aspx