建立与ADO.NET命令对象一起使用的连接的最佳方法

时间:2009-09-11 07:22:42

标签: asp.net vb.net visual-studio-2008 ado.net

我正在ASP.NET和VS2008中设计一个Web服务,并使用类型化数据集来检索表数据。这些工作正常,并通过相关的TableAdapter对象建立自己的连接。编辑:我正在使用VB,BTW!

我现在正在尝试使用DataAdapter和Command对象运行自定义SQL字符串,但是我需要引用Connection对象才能使Command工作。处理这个问题的最佳方法是什么?我应该:

a)使用Global.asax创建一个全局连接对象,从web.config中检索连接字符串? (我已经尝试过那个,但没有太大的成功)

b)使用InitialiseComponent方法创建类级连接对象,还从web.config中检索ConnectionString?

c)从我已经在我输入的DataSet中创建的TableAdapter之一中检索一个连接?

d)我还没有想到的其他东西?

BTW我发现从web.config中提取ConnectionString非常困难,所以对此的任何帮助也会受到赞赏!

我对ASP.NET并不完全缺乏经验,但是我的上一个大项目使用的是VS2003,我想确保我正确使用当前的工具。

2 个答案:

答案 0 :(得分:3)

要提取连接字符串,请使用

WebConfigurationManager.ConnectionStrings["name"].ConnectionString

最好尽可能接近打开和关闭连接。 ADO.NET将进行连接池,因此这不会很昂贵:

var connectionString = 
    WebConfigurationManager.ConnectionStrings["name"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connectionString))
{
    using (SqlCommand cmd = new SqlCommand("query", conn))
    {
        conn.Open();

        // Use the command
    }
}

答案 1 :(得分:1)

对于连接和数据访问问题,我建议您使用某些数据助手,例如Microsoft Data Access Application Block

Here你可以找到关于如何使用它的小教程。

要从web.config获取connectionstring,请使用以下方法

 public static string GetConnectionString( string strConstringKey )
        {
            return ConfigurationManager.ConnectionStrings[strConstringKey];
        }

        public static bool GetConnectionString(string strConstringKey, ref string strConstring)
        {
            return (strConstring = ConfigurationManager.ConnectionStrings[strConstringKey] ) == null ? false : true  ;
        }