Лучшая практика при использовании «SQlDataAdapter»

Есть общая функция, которую я использую в своем проекте для возврата набора данных. Здесь я использую «SQLDataAdapter». Это отлично работает для 3 других проектов. Но в одном из проектов эта функция выдавала ошибку при запуске с одной из клиентских машин. (Отлично работает на серверной машине).

Ошибка. При установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: 26 — Ошибка при обнаружении указанного сервера/экземпляра)

Вот исходный код функции: -

Public Function Fn_Return_Dataset(ByVal sqlquerys As String) As DataSet
    ' This function is used to return a dataset for given query
    If mydb.State <> ConnectionState.Closed Then
        mydb.Close()
    End If

    Dim dap As New SqlDataAdapter(sqlquerys, mydb)
    mydataset = New DataSet()
    Try
        dap.Fill(mydataset)
    Catch Exdat As Exception
        writelog(Exdat.Message.ToString, "MYDATA", "FN_RETURN_DATASET")
        showmsg("Sorry.....Unable to return dataset")
    Finally
        If mydb.State <> ConnectionState.Open Then
            mydb.Open()
        End If
    End Try
    Return (mydataset)
End Function

person Sujit Prabhakaran    schedule 22.04.2012    source источник
comment
Какой у вас механизм SQL (тип/версия). Используете ли вы именованные экземпляры?   -  person huhu78    schedule 22.04.2012


Ответы (1)


Если ваш код отлично работает на серверной машине, а не на клиентской, значит, у вас проблемы со связью. Проверьте, включен ли TCP в вашем механизме SQL и открыт ли брандмауэр. У вас может быть проблема, связанная с DNS/разрешением имен — проверьте имя сервера в строке подключения — выполните простой ping с именем сервера, чтобы проверить, может ли клиентский компьютер преобразовать имя сервера в IP.

person huhu78    schedule 22.04.2012