简体   繁体   中英

Strange situation with System.Data.SqlClient.SqlException

Hello I am trying to connect to a database using C# but keeps giving me this the code:

SqlConnection connection = new SqlConnection("Data Source=FAVAI_LAB_01\\SQLSERVER;Initial Catalog=DBServicios;Integrated Security=True");

try
{
   connection.Open();

   SqlCommand myCommand = new SqlCommand("select ID_USUARIO from TUSUARIO" +
                                         "WHERE NOMBRE_USUARIO=@Param1 AND PASS=@Param2", connection);
   myCommand.Parameters.AddWithValue("@Param1", username);
   myCommand.Parameters.AddWithValue("@Param1", password);

   string CurrentName = (string)myCommand.ExecuteScalar();

   if (CurrentName != null)
   {
      connection.Close();
      Console.WriteLine("true");
   }
   else
   {
      connection.Close();
      Console.WriteLine("falsfgdge");
   }
}
catch (System.Data.SqlClient.SqlException e)
{
    Console.WriteLine(e.ToString());
}

This is the error:

System.Data.SqlClient.SqlException (0x80131904):
 A network-related or instance-specific error occurred while establishing a connection to SQL Server.
 The server was not found or was not accessible. 
Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
 (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
 at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.
 Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, 
 Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, 
 Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) at 
 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword,
 Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, 
 SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, 
 Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, 
 DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, 
 DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 
 at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
 at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, 
 DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() 
 at Webserver.Login.getAccess(String username, String password) in path\Login.cs:line 18

A space is missing between TUSUARIO and WHERE, add one

 SqlCommand myCommand = new SqlCommand("select ID_USUARIO from TUSUARIO " +
                            "WHERE NOMBRE_USUARIO=@Param1 AND PASS=@Param2", connection);

You are selecting ID_USUARIO but then you cast it to string. Most probably, if a column is called ID_something the type of it is NOT a string type.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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