提问者:小点点

错误1042已发生:连接超时过期


我试图用下面的连接字符串连接到SQL服务器,但它给出了这个"错误连接超时过期"

我已尝试telnet,并且它已成功连接。但是,根据代码,即使我尝试指定默认端口,也无法连接。

我有做错什么吗?提前谢谢你。

            string _connectionString = @"Server=myIP,1433;Database=myDB;User Id=myID;Password=myPass;";
            using (MySqlConnection con = new MySqlConnection(_connectionString))
            {
                con.Open();
                string sqlQuery = "SELECT * FROM Inventory";
                using (MySqlCommand cmd = new MySqlCommand(sqlQuery, con))
                {
                    MySqlDataReader result = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    while (result.Read())
                    {
                        
                    }
                    con.Close();
                }
            }

Telnet结果


共1个答案

匿名用户

如果有SQL Server的实例,请使用反斜杠“Server=myIP\sqlexpress”

如果服务器是您的本地计算机,请改用Windows身份验证

"Server= localhost; Database= myDB; Integrated Security=True;"

或者你可以使用App.Config来配置你的SQL连接,这是我使用Windows身份验证而不是用户名和密码来配置我的SQL连接的方式。首先,将App.config添加到应用程序中。然后添加以下内容:

<connectionStrings>  
 <add name="SqlConnectionString" connectionString="Data Source=localhost;Initial Catalog=myDB;Integrated Security=true"/>  
</connectionStrings>

在您的节目中:

string _connectionString = string connString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;

using (con = new SqlConnection(_connectionString))
        {                
            string sqlQuery = "SELECT * FROM Inventory";
            SqlCommand cmd = new SqlCommand(sqlQuery, con)
            con.Open();
                SqlDataReader result = cmd.ExecuteReader();
                while (result.Read())
                {
                    
                }
                con.Close();
        }

不要忘记使用指令添加

using System.Data;
using System.Data.SqlClient;
using System.Configuration;