在页面加载时仅与数据库建立一次连接

时间:2010-10-12 17:10:07

标签: c# asp.net sql-server vb.net database-connection

当我加载页面时,我使用以下代码填充我的转发器。

        Dim conn As Data.SqlClient.SqlConnection
        Dim Comm As Data.SqlClient.SqlCommand
        Dim reader As Data.SqlClient.SqlDataReader

        'conn = New Data.SqlClient.SqlConnection("Server=localhost\sqlexpress; " & _
        '"Database=MyDB; Integrated Security=true")
        conn = New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("MyConnection").ConnectionString)

        Comm = New Data.SqlClient.SqlCommand( _
        ("HomePage"), conn)

        Comm.CommandType = CommandType.StoredProcedure
        Comm.Parameters.AddWithValue("@currentState", "Florida")

        ' Open the connection
        conn.Open()
        ' Execute the category command
        reader = Comm.ExecuteReader()

        ' Bind the reader to the repeater.......
        blogRepeater.DataSource = reader

        blogRepeater.DataBind()

        ' Close the reader
        reader.Close()
        ' Close the connection
        conn.Close()

    End Try

现在我想调用另一个存储过程(同时),以便我可以填充一些文本字段(也在页面加载上)。但是我怎么能这样做,以便我只调用一次我的数据库以获得更好的性能?

如果您不了解VB.NET,C#示例也可以使用

1 个答案:

答案 0 :(得分:4)

只是不要关闭连接并启动另一个存储过程。之后关闭连接。所以你会Dim另一个SQL命令并执行它。

类似的东西:

Dim Comm2 As Data.SqlClient.SqlCommand
Dim reader2 as Data.SqlClient.SqlDataReader

Comm2.CommandType = CommandType.StoredProcedure
Comm2.Paramaters.AddWithValue("@whateverValue", "Whatever")

然后就在你打开连接之后

reader2 = Comm2.ExecuteReader()

然后你会发现reader2有你想要的东西,但是你为它们使用了相同的连接。