首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP/IP连接

问TCP/IP连接
EN

Stack Overflow用户
提问于 2011-01-21 01:10:15
回答 4查看 1.1K关注 0票数 1

我已经在其他网站上尝试和搜索了数千次,但从来没有找到一个样本或简单的代码来使用。

我已经创建了一个使用ODBC连接的应用程序C#,我还安装了MS SQL并将其配置为启用远程数据库信息共享。我想让我的数据库对每个使用我通过连接创建的应用程序的人都可用。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace CaseMatter
{

public partial class mainLog : Form
{
    string userID, userName, userAddress, userFName, userLastName, userCity, userPassword, userTele;
    public mainLog()
    {
        InitializeComponent();
        this.Size = new Size(442, 162);

    }


    private void Submitbtn_Click(object sender, EventArgs e)
    {

            string ConnectionString =
              "Data Source=xx.xx.xx.xx,1433;Initial Catalog=master;Integrated Security=SSPI;";

            var conn = new SqlConnection(ConnectionString);
            conn.Open();

            var strSQLCommand = "SELECT Name FROM example WHERE id='1'";
            var command = new SqlCommand(strSQLCommand, conn);
            var reader = command.ExecuteReader();

            while (reader.Read())
            {
                passwordBox.Text = reader.GetString(0);
            }

            reader.Close();
            conn.Close();

    }
}

}

我刚刚编辑了代码并尝试了它,我已经添加了一个try catch来处理sql异常,但当我单击submit按钮时,它仍然冻结。

希望有人能弄明白这一点。错误:“建立与SQL Server的连接时出现与网络有关的错误或特定于实例的错误。找不到服务器或服务器不可访问。请验证实例名称是否正确,以及SQL server是否配置为允许远程连接。(提供程序: TCP提供程序,错误:0-无法建立连接,因为目标计算机主动拒绝了连接。)”

EN

回答 4

Stack Overflow用户

发布于 2011-01-21 04:40:50

我怀疑这里发生了四件事中的一件。

  1. SQL Server配置错误,没有响应tcp连接。解决此问题的最简单方法是使用SQL Management Studio进行连接。如果您不能以这种方式连接,那么您必须查看sql server服务设置。此外,请确保SQL Browser服务正在服务器上运行。
  2. SQL Server已配置为使用与您正在尝试的端口不同的端口。从连接字符串中删除",1433“,然后重试。SQL Browser应使用sql server正在侦听的实际端口进行响应。
  3. SQL Server具有阻止远程连接的防火墙。暂时关闭防火墙,看看是否可以连接。如果可以,请正确配置防火墙并将其重新打开。
  4. 您的本地计算机上有某种类型的防火墙正在阻止该端口上的传出连接。试着关掉你的,看看这是否有帮助。如果是,请正确配置它,然后重新打开它。

如果这是一个全新的sql服务器,没有人远程连接,那么它很可能完全在SQL服务器的配置或Windows配置中。

票数 2
EN

Stack Overflow用户

发布于 2011-01-21 01:47:16

在您的示例中,您没有传递用户ID和密码。这仅仅是因为你不想包括你的证书吗?我假设你没有正确地列出你的IP地址。首先,我将提供可以访问您的数据库的SQL server帐户的凭据。

票数 1
EN

Stack Overflow用户

发布于 2011-01-21 02:04:39

我注意到您使用的是SqlConnection,它不是一个ODBC connection对象。使用SqlConnection,您实际上是通过ADO.NET进行连接。SqlConnection (包括ODBC和ADO.NET)的连接字符串语法可以在以下站点中找到:

http://connectionstrings.com

顺便说一下,如果您连接到SQL 2005,连接字符串将如下所示:

代码语言:javascript
复制
using System.Data.SqlClient;

// trusted connection (SQL configured to use your windows ID)
string ConnectionString = 
  "Data Source=xxxxxxx;Initial Catalog=xxxxxx;Integrated Security=SSPI;"

// sql authentication (SQL manages its own users/pwds)
//string ConnectionString = 
  //"Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"

var conn = new SqlConnection(ConnectionString);
conn.Open();

var strSQLCommand = "SELECT Name from [example_autoincrement] where id='1'";     
var command = new SqlCommand(strSQLCommand, conn);
var reader = command.ExecuteReader();

while (reader.Read())
{   
    passwordBox.Text = reader.GetString(0);
}

reader.Close();
conn.Close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4750257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档