Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server连接错误号:2,状态:0,类别:20_C#_Sql Server - Fatal编程技术网

C# SQL Server连接错误号:2,状态:0,类别:20

C# SQL Server连接错误号:2,状态:0,类别:20,c#,sql-server,C#,Sql Server,尝试连接到本地SQL server(MAMP)时,出现以下异常: 引发异常:System.Data.dll中的“System.Data.SqlClient.SqlException” System.Data.SqlClient.SqlException(0x80131904):建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到S

尝试连接到本地SQL server(MAMP)时,出现以下异常:

引发异常:System.Data.dll中的“System.Data.SqlClient.SqlException” System.Data.SqlClient.SqlException(0x80131904):建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)--->System.ComponentModel.Win32Exception(0x80004005):系统找不到指定的文件 位于System.Data.SqlClient.SqlInternalConnectionDS..ctor(DbConnectionPoolIdentity、SqlConnectionString connectionOptions、SqlCredential凭证、对象提供信息、String newPassword、SecureString newSecurePassword、Boolean redirectedUserInstance、SqlConnectionString userConnectionOptions、SessionData重新连接SessionData、DbConnectionPool池、String accessToken、Boolean applyTransientFAulthandle,SqlAuthenticationProviderManager(sqlAuthProviderManager) 位于System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions、DbConnectionPoolKey、Object poolGroupProviderInfo、DbConnectionPool、DBConnectionOwningConnection、DbConnectionOptions用户选项) 位于System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool池、DbConnectionOwningObject、DbConnectionOptions选项、DbConnectionPoolKey池键、DbConnectionOptions用户选项) 位于System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection-owningObject、DbConnectionOptions-userOptions、DbConnectionInternal-oldConnection) 位于System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject、DbConnectionOptions userOptions、DbConnectionInternal oldConnection) 位于System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject、UInt32 waitForMultipleObjectsTimeout、Boolean allowCreate、Boolean OnlyOnEckConnection、DbConnectionOptions userOptions、DbConnectionInternal和connection) 位于System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject、TaskCompletionSource
1重试、DbConnectionOptions用户选项、DbConnectionInternal和connection)
位于System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection、TaskCompletionSource
1重试、DbConnectionOptions用户选项、DbConnectionInternal oldConnection、DbConnectionInternal&connection) 在System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnectionOuterConnection,DbConnectionFactory connectionFactory,TaskCompletionSource
1重试,DbConnectionOptions用户选项)
位于System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection、DbConnectionFactory connectionFactory、TaskCompletionSource
1重试,DbConnectionOptions用户选项) 在System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1重试)
在System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
1重试) 在System.Data.SqlClient.SqlConnection.Open()处 在C:\Users******\DatabaseClass.cs中的login_页面.DatabaseClass.dbRead(字符串sqlQuery)处:第35行 客户端连接ID:00000000-0000-0000-0000-000000000000 错误号:2,状态:0,类别:20

这是我用来执行
SELECT
SQL函数的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace login_page
{
    class DatabaseClass
    {
        public void dbSignIn(String username, String password)
        {
            dbRead("SELECT * FROM user_credentials WHERE username = '" + username + "' AND password = '" + password + "'");
        }

        public void dbRegisterUser()
        {
            dbRead("SQL READ TO DATABASE");
            //dbWrite("SQL WRITE TO DATABASE")
        }

        private void dbRead(String sqlQuery)
        {
            SqlDataReader dataReader;
            SqlCommand command;

            // *** CONNECT TO DATABASE
            Console.WriteLine("** Database Connection: Connecting to database");

            SqlConnection dbConnection = new SqlConnection("User Id=root;" + "Password=root;" + "Server=localhost;" + "Trusted_Connection=true;" + "Database=dbmentum;" + "Connection Timeout=10;");
            try
            {
                dbConnection.Open();
                Console.WriteLine("** Database Connection: Connected to database server");

                // *** READ FROM DATABASE
                command = new SqlCommand(sqlQuery, dbConnection);
                dataReader = command.ExecuteReader();

                while (dataReader.Read())
                {
                    Console.WriteLine(dataReader[0].ToString());    
                    Console.WriteLine(dataReader[1].ToString());
                }

                dataReader.Close();
                command.Dispose();
                dbConnection.Close();
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
                MessageBox.Show(e.Message, "Mentum - Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            /*
            // CLOSE DATABASE
            try
            {
                dbConnection.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            } */
        }
    }
}

所有适当的端口都已启用,数据库详细信息都正确。

您提到了MAMP,据我所知,这是一个MySql服务器。
SqlConnection
SqlCommand
用于连接到MS SQL server。对于MySql,您需要一个
MySqlConnection
MySqlCommand
等等


正如Prashant Pimpale指出的,您观察到的错误与网络连接有关。如果是这样,您使用MS SQL Server客户端连接到MySQL数据库,原因很明显。MSSQL默认端口为1433,MySQL默认端口为3306。因此,客户端将尝试连接到端口1433,但没有服务侦听。因此,无法建立连接…

根据错误消息,连接字符串中提供的数据库实例错误、不可访问或未配置为允许远程连接(但您使用的是localhost,因此这不是原因)

MAMP似乎使用MySQL作为数据库。请参阅了解如何连接到MySQL。
我还建议对SQL注入进行研究,因为您的方法dbSignIn是此类攻击的良好目标。

连接字符串中的串联背后有什么特殊原因吗?N错误是:在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到或未找到服务器可访问。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。确认连接字符串是否正确!在web配置中定义连接字符串,如:字符串是否正确,如果我不连接,我将如何继续?您的参数很有意义,但我例如,我还试图使用System.Data.SqlClient;包含库
,然后我尝试将MAMP服务器上的端口更改为1134,现在它似乎移动并停止到下一行
System.InvalidOperationException:“内部连接致命错误。错误状态:18”
System.Data.SqlClient
仅用于连接到MS SQL Server。这是一种与MySql Server完全不同的协议。必须使用正确的库。如果要连接到MySql,必须使用