使用“SQlDataAdapter”时的最佳实践
Posted
技术标签:
【中文标题】使用“SQlDataAdapter”时的最佳实践【英文标题】:Best practise while using 'SQlDataAdapter' 【发布时间】:2012-04-22 07:00:42 【问题描述】:我在项目中使用了一个通用函数来返回数据集。我在这里使用“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
【问题讨论】:
您的 SQL 引擎是什么(类型/版本)。你使用命名实例吗? 【参考方案1】:如果您的代码在服务器机器上运行良好,而不是在客户端机器上运行良好,那么您有通信问题。检查您的 SQL 引擎是否启用了 TCP 以及是否打开了防火墙。您可能有一些与 DNS 相关/名称解析相关的问题 - 检查连接字符串中的服务器名称 - 使用服务器名称执行简单 ping 以检查客户端机器是否可以将服务器名称解析为 IP。
【讨论】:
以上是关于使用“SQlDataAdapter”时的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
使用 RemoteObject 和多个组件时的 Flex 4 最佳实践
将 Querydsl 与 Spring Data 一起使用时的最佳实践