繁体   English   中英

无法从 Visual Studio 2013 连接到远程 SQL 服务器上的数据库

[英]Can't connect to Database on remote SQL server from Visual Studio 2013

我在 Visual Studio 2010 中使用 C# 和 XAML 创建了一个程序,并与存储数据的 SQL 服务器建立了数据连接。 但是后来我的公司不得不改用 Windows 7——我的机器上以前有 XP——而且我也不得不改用 Visual Studio 2013。我的问题是我无法在新的 Visual Studio 2013 中连接到 SQL 服务器上的数据库专业的。 我可以很好地从服务器资源管理器中查看和编辑表格。 而且我还检查了连接字符串是否正确。 我还检查了 TCP/IP 设置,因为它是一个远程网络服务器,并且它似乎已启用并且端口 1433 很好。我也尝试更改数据类,但仍然没有运气。 当我从 SQL Server Management Studio 连接到服务器时,它工作得很好。 但是在 Visual Studio 2013 中,我在我的 observablecollection 上收到了与网络相关的错误 26 的错误:“SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified”。 我不知道如何解决这个问题,非常感谢任何帮助。

     private T_Patient _T_Patient;
    public T_Patient T_Patient
    {
        get { return _T_Patient; }
        set { _T_Patient = value; }
    }

    private ObservableCollection<T_Patient> _observableCollection;
    private CollectionViewSource _collectionViewSource;
    /// <summary>
    /// Constructor for Patienter with observablecollection
    /// </summary>
    public Patienter()
    {

        InitializeComponent();

        using (var dc = new DataClasses2DataContext())
        {
            _observableCollection = new ObservableCollection<T_Patient>(dc.T_Patients);
        }

        _collectionViewSource = (CollectionViewSource)this.FindResource("_T_PatientViewSource") as CollectionViewSource;
        _collectionViewSource.Source = _observableCollection;

        _collectionViewSource.Filter += FilterName;
        _collectionViewSource.Filter += FilterID;

        this.T_Patient = new T_Patient();
        this.DataContext = T_Patient;
    }

顺便说一句,我试图制作一个新的数据网格来连接到 SQL 服务器中的数据库,并且它运行良好。 所以可能映射中存在错误,我不知道如何设置。

我找到了解决方案,但它很奇怪,而且与 SQL 服务器上的连接关系不大。 我只需将我的项目移动到 Visual Studio 将项目保存在本地驱动器 C 上的正确文件夹中。我已将我的项目保存在公司的网络文件夹中。

我在这里找到了答案,当我再次尝试构建项目时,我也无法从数据源中拖动控件。

https://social.msdn.microsoft.com/Forums/en-US/9fc4f835-d6c0-4d04-86c2-779c1f8e0791/unable-to-drag-data-source-to-control-to-bind

Microsoft 的这篇博文可能会有所帮助。

博客摘录

用户在连接到 SQL Server 时经常会看到此错误消息,并且不知道从哪里开始解决问题。 在大多数论坛中,人们都说这是因为服务器上没有启用远程连接。 这并不完全正确。 实际上,此错误消息为客户提供了非常具体的信息,解决方案非常简单。

首先,只有在尝试连接到 SQL Server 命名实例时才会收到此错误消息。 对于默认实例,您永远不会看到这一点。 为什么? 因为即使我们在此阶段失败(即指定错误定位服务器/实例),我们将继续尝试使用默认值进行连接,例如默认 TCP 端口 1433,命名管道的默认管道名称。 您可能会在稍后看到由于失败而导致的其他错误消息,但不会看到此错误消息。

每次客户端连接到SQL Server命名实例时,我们都会向服务器机器UDP端口1434发送一个SSRP UDP数据包。我们需要通过这一步来了解SQL实例的配置信息,例如启用的协议、TCP端口、管道名称等等。如果没有这些信息,客户端确实知道如何连接服务器,并且它会失败并显示此指定的错误消息。

总之,我们收到此错误消息的原因是客户端堆栈无法从 SQL 浏览器接收 SSRP 响应 UDP 数据包。 很容易隔离问题。 以下是步骤: 1) 确保您的服务器名称正确,例如,名称上没有拼写错误。 2)确保您的实例名称正确,并且您的目标机器上确实有这样的实例。 [更新:某些应用程序将 \\ 转换为 . 如果您不确定您的应用程序,请在您的连接字符串中同时尝试 Server\\Instance 和 Server\\Instance] 3) 确保服务器机器可访问,例如,DNS 可以正确解析,您可以 ping 服务器(并非总是如此)。 4) 确保服务器上正在运行 SQL Browser 服务。 5) 如果服务器上启用了防火墙,则需要将 sqlbrowser.exe 和/或 UDP 端口 1434 设置为异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM