c# - 数据库 "openpg"不存在严重性 : FATAL Code: 3D000

标签 c# mysql database postgresql postgresql-9.1

我正在尝试以编程方式创建一个 postGres 数据库 c#,之前我手动创建了数据库,并使用连接字符串打开它并对其进行操作,它运行良好。

现在我必须首先检查该 DBB 是否已经存在,如果不存在,则首先创建它,然后执行其他操作,例如读写它。

我的代码是:

  internal void createDataBaseIfDoNotExist()
        {
            string connStr = string.Empty;
            connStr =
                           "Server=" + "localhost"
                         + ";Port=" + "5432"
                         + ";User Id=" + "openpg"
                         + ";Password=" + "oppwd"
                         + ";";
            var m_conn = new NpgsqlConnection(connStr);
            var m_createdb_cmd = new NpgsqlCommand(@"CREATE DATABASE IF NOT EXISTS testDb ;", m_conn);
            try
            {
                m_conn.Open();
                m_createdb_cmd.ExecuteNonQuery();
                m_conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Errr on createDataBaseIfDoNotExist query :" + ex);
            }
        }
    And it gives followign error:
database "openpg" does not exist Severity: FATAL Code: 3D000  

虽然我保留的数据库名称是“testDb”,但它不是“openpg”

之前我创建了一个数据库名称“NewDB”并创建了这样的连接字符串:

    connStr =
                    "Database=" + "NewDB"
                  + ";Server=" + "localhost"
                  + ";Port=" + "5432"
                  + ";User Id=" + "openpg"
                  + ";Password=" + "oppwd"
                  + ";";

它工作得很好,那么为什么现在有错误以及如何解决它?

最佳答案

需要在连接字符串中加入Database=postgres

 connStr = "Server=localhost;Port=5432;User Id=postgres;Password=password_of_the_user;Database=postgres";

因为 postgresPostgreSQL 的默认管理连接数据库

关于c# - 数据库 "openpg"不存在严重性 : FATAL Code: 3D000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34175836/

相关文章:

php - SQL 注入(inject)漏洞神奇地 self 修复?

php - 我应该在哪里保存 phpMyAdmin 连接文件(用 Notepad++ 编写,即index.php、connect.php)?

c# - PostgreSQL:命令已经在进行中

c# - Linq 获取按最快日期排序的第一行,其中 B 列不是 "Expired"或 "Cancelled"

c# - 删除时无法将 NULL 插入到列中

php - MySqli 循环存储结果

php - 如何运行具有多个值的删除sql查询

php - 检查用户名是否存在不起作用

c# - 使用 TLS 1.2 从 HttpClient 连接到 Azure FrontDoor 后面的 API

c# - 在 C# 中将 UNC 路径转换为本地路径