0

I have installed postgres in my windows machine and started working on a POC. I am able to connect to the database from the windows command line. But, I am unable to connect from the C# application.

It seems i have some issues in the connection string. I have gone through multiple tutorials but every tutorial has their own way of providing the connection string parameters.Is there any standard way of giving the hostname,port,username,password and database.

I am trying to query using a rest api. Am, I doing the right way.

// GET api/values
[HttpGet]
public IActionResult Get()
{
   Test test = new Test();
   return Ok(test.Table2Json());
}

using Npgsql;
using System;

namespace Zeiss.MCCNeo.DataMigration.Utilities
{
  public class Test
  {
     private readonly NpgsqlConnection conn;
     public Test()
     {

     conn = new NpgsqlConnection("Server=127.0.0.1;User Id=postgres;" +
                                    "Password=postgres;Database=postgres;");
     //also tried using this
     conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User                                       
                                   Id=postgres;" +                              
                                   "Password=postgres;Database=postgres;");
     }

     public string Table2Json()
     {
         string value = null;
         NpgsqlCommand command = new NpgsqlCommand("select * from test", 
                                        conn);
         NpgsqlDataReader dr = command.ExecuteReader();
         while (dr.Read())
         {
         value = dr[0].ToString();
         }
         return value;
         }
    }
 }

Exception:

-       $exception  {System.InvalidOperationException: Connection is not open
   at Npgsql.NpgsqlConnection.CheckReadyAndGetConnector()
   at Npgsql.NpgsqlCommand.<ExecuteDbDataReader>d__92.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult()
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at Npgsql.NpgsqlCommand.ExecuteReader()
   at Zeiss.MCCNeo.DataMigration.Utilities.Test.Table2Json() in c:\users\inpyadav\documents\visual studio 2017\Projects\DataMigration\Zeiss.MCCNeo.DataMigration.Utilities\Test.cs:line 19
   at DataMigration.Controllers.ValuesController.Get() in c:\users\inpyadav\documents\visual studio 2017\Projects\DataMigration\DataMigration\Controllers\ValuesController.cs:line 18
   at lambda_method(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__27.MoveNext()}  System.InvalidOperationException

1 Answer 1

1

Why don't you open connection as it says in error message?

conn.Open();

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.