Сделать подключение к базе данных только один раз при загрузке страницы - PullRequest
1 голос
/ 12 октября 2010

Когда я загружаю свою страницу, я заполняю свой репитер следующим кодом.

        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

Теперь я хочу вызвать другую хранимую процедуру (в то же время), чтобы я мог заполнить некоторые текстовые поля (такжена странице загрузки).Но как я могу сделать это так, чтобы я делал вызов в свою базу данных только один раз для лучшей производительности?

Примеры C # также будут работать, если вы не знаете VB.NET

1 Ответ

4 голосов
/ 12 октября 2010

Только не закрывайте соединение и не запускайте другую хранимую процедуру.Закройте соединение после этого.Таким образом, вы могли бы 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 имеет то, что вы хотите, но вы использовали одно и то же соединение для обоих.

...