Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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# Npgsql异常-语法错误位于或接近\&引用;_C#_Postgresql_Npgsql - Fatal编程技术网

C# Npgsql异常-语法错误位于或接近\&引用;

C# Npgsql异常-语法错误位于或接近\&引用;,c#,postgresql,npgsql,C#,Postgresql,Npgsql,我正在尝试执行postgresql查询(\list),以使用npsql获取数据库列表 string postgresQuery = @"\list"; ICollection<Schema> schemas = new List<Schema>(); string ConnectionString = "Host=xxx;Username=postgres;Password=admin;Database=test;";

我正在尝试执行postgresql查询(\list),以使用npsql获取数据库列表

string postgresQuery = @"\list"; 
            ICollection<Schema> schemas = new List<Schema>();
            string ConnectionString =
"Host=xxx;Username=postgres;Password=admin;Database=test;";
            NpgsqlConnection conn = new NpgsqlConnection(ConnectionString);
            NpgsqlCommand cmd = new NpgsqlCommand(postgresQuery, conn);
            conn.Open();
   NpgsqlDataReader dataReader = cmd.ExecuteReader();
string postgresQuery=@“\list”;
ICollection schemas=new List();
字符串连接字符串=
“主机=xxx;用户名=postgres;密码=admin;数据库=test;”;
NpgsqlConnection conn=新的NpgsqlConnection(ConnectionString);
NpgsqlCommand cmd=新的NpgsqlCommand(康涅狄格州Postgreskery);
conn.Open();
NpgsqlDataReader=cmd.ExecuteReader();

执行查询时遇到“在“\”处或附近出现语法错误”的问题。字符串包含双斜杠,如下所示(\list),而不是单斜杠(\list)。请让我知道是否有任何解决办法。提前感谢。

\list
不是SQL查询。这是psql工具的一个命令

要使用SQL获取所有数据库的列表,请使用以下查询:

SELECT datname FROM pg_database
WHERE datistemplate = false;
检查

描述了
pg_数据库
表的字段

数据库的所有者存储在
datdba
字段中,该字段引用
pg_authid
表。可以找到用户拥有的所有数据库,如中所示

当然,查询应该参数化:

SELECT datname 
FROM pg_database 
JOIN pg_authid ON pg_database.datdba = pg_authid.oid 
WHERE rolname = :username

pg\u authid
已被描述

\list
不是有效的SQL查询。这是
psql工具的命令
可能重复感谢更新。这将列出所有数据库。但是我只需要所有由用户创建的数据库,而不是PostgreSQL中的所有数据库。请告诉我是否可以只获取由用户创建的数据库。这是
datdba
字段。您可以将其用作查询中的筛选器,或与
pg_authid
表联接。检查文档和文档页面
SELECT datname 
FROM pg_database 
JOIN pg_authid ON pg_database.datdba = pg_authid.oid 
WHERE rolname = :username