powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Connection.Open() открывает два соединения на SQL Server
11 сообщений из 11, страница 1 из 1
Connection.Open() открывает два соединения на SQL Server
    #32318985
NochEinBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма с кнопкой btnConnection. Далее:

Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports MSSQLServer
Public Class MyForm
Inherits System.Windows.Forms.Form
Private cnn As New SqlConnection()
Private Sub btnConnection_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnConnection.Click
Dim sConnectionString As String="server=myserver;database=myDB;user
id=sa;pwd=1234567"
cnn.ConnectionString = sConnectionString
Try
Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
If cnn.State.Closed = ConnectionState.Closed Then
cnn.Open()
End If
Cursor.Current = System.Windows.Forms.Cursors.Default
Catch ex As Exception
Cursor.Current = System.Windows.Forms.Cursors.Default
Return
End Try
End Sub
End Class

Так вот эта cnn.Open() открывает на сервере два соединения совершенно одинаковые, причем они не закрываются cnn.Close(), а закрываются только когда закрываешь форму.

Help! Где засада?
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319057
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщето должно быть одно подключение. второе - возможно от EM. закрытие - см. Pooling Connections
http://msdn.microsoft.com/library/en-us/cpguide/html/cpconConnectionPoolingForSQLServerNETDataProvider.asp?frame=true
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319080
NochEinBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, на EM захожу под другим логином, SQL Server'ным, а из проги коннектюсь с Trusted_Connection=Yes
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319121
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
server=myserver;database=myDB;user id=sa;pwd=1234567
что то в твоей строке траста не видно ???

ну да ладно.
возможно у тебя было одновременно открыто 2 подключения - вот они остались. проведи чистый эксперимент ...
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319156
NochEinBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 кузя

"server=myserver;database=myDB;user id=sa;pwd=1234567
что то в твоей строке траста не видно ??? "

это я точно протормозил :) , просто что-то пример не так привел, на самом деле:

"server=myserver;database=myDB;user id=;pwd=;trusted_connection=yes


"возможно у тебя было одновременно открыто 2 подключения - вот они остались. проведи чистый эксперимент ..."

Да я их убивал сколько раз, эти подключения! Какой эксперимент будет чистым?
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319222
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот провел чистый экперимент - при загрузке основной формы выполнил
Код: plaintext
1.
SqlConnection cnn=new SqlConnection( "server=myserver;database=myDB;user id=sa;pwd=1234567 ");
cnn.Open();
остановился в отладчике и через EM посмотрел и увидел от приложения только одно подключение (ну нет там второго от приложения ".Net SqlClient Data Provider")

а что значит убивал - если делал Close, то это не спасет - соединение останется висеть.
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319249
NochEinBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"а что значит убивал - если делал Close, то это не спасет - соединение останется висеть"

Типа Close делает connection вроде как просто disabled, а на сервере оно должно висеть?

"SqlConnection cnn=new SqlConnection("server=myserver;database=myDB;user id=sa;pwd=1234567");
cnn.Open();"

Мож это басик глючит, а на си все нормально?
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319274
NochEinBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"остановился в отладчике и через EM посмотрел и увидел от приложения только одно подключение"

А я остановился в отладчике после cnn.Open() посмотрел через EM и там висят эти две заразы! и обе одинаковые! и имя приложения, и имя хоста, и сет.биб-ки, и юзер (я). Вот веришь?
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319308
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот веришь?
а что остается делать ? верю (правда, вот выучу васик, то проверю...)

Типа Close делает connection вроде как просто disabled, а на сервере оно должно висеть?
да, конекшн не закрывается и остается в пуле. я ж тебе ссылку привел на механизм хеширования конекшинов (connection pooling).
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319319
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а смотришь на сервер с какой машины ? если со своей, то выйди из всех программ, котрые коннектятся к серверу, запусти свою программу и только потом запусти EM - вот и получишь одно подключение

PS. вот выучил васик , написал такую простенькую программу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Imports System.Data
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form
#Region  " Windows Form Designer generated code " 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim cn As New SqlConnection( "User ID=userA;Data Source=myserv;Password=1234 ;Initial Catalog=db;")
  cn.Open()
End Sub
End Class
и хоть тресни - одно подключение.
...
Рейтинг: 0 / 0
Connection.Open() открывает два соединения на SQL Server
    #32319640
NochEinBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"а смотришь на сервер с какой машины ? если со своей, то выйди из всех программ, котрые коннектятся к серверу, запусти свою программу и только потом запусти EM - вот и получишь одно подключение"

Да, это прокатило... Только почему если ЕМ запустить первым то вижу два коннекта, а если после проги, то один коннект?

"я ж тебе ссылку привел на механизм хеширования конекшинов (connection pooling)."

Да, я прчитал эту ссылку, только там не писали что соединение будет видно на серваке :) буржуи проклятые :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Connection.Open() открывает два соединения на SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]