gpt4 book ai didi

c# - Postgresql - 动态创建数据库和表

转载 作者:行者123 更新时间:2023-11-29 11:40:45 25 4
gpt4 key购买 nike

此代码无效。谁能告诉我在哪里可以找到使用 C# 动态创建 Postgresql 数据库和表的示例?

     const string connStr = "Server=localhost;Port=5432;
User Id=postgres;Password=enter;Database=postgres";

var m_conn = new NpgsqlConnection(connStr);

// creating a database in Postgresql
m_createdb_cmd = new NpgsqlCommand("CREATE DATABASE IF NOT EXISTS \"testDb\" " +
"WITH OWNER = \"postgres\" " +
"ENCODING = 'UTF8' " +
"CONNECTION LIMIT = -1;", m_conn);

// creating a table in Postgresql
m_createtbl_cmd = new NpgsqlCommand(
"CREATE TABLE MyTable(CompanyName VARCHAR(150))";

m_conn.Open();
m_createdb_cmd.ExecuteNonQuery();
m_createtbl_cmd.Connection = m_conn;
m_conn.Close();

数据库已创建,但我在创建表时遇到静默失败。

最佳答案

我会这样做:

string connStr = "Server=localhost;Port=5432;User Id=postgres;Password=enter;";
var m_conn = new NpgsqlConnection(connStr);
var m_createdb_cmd = new NpgsqlCommand(@"
CREATE DATABASE IF NOT EXISTS testDb
WITH OWNER = postgres
ENCODING = 'UTF8'
CONNECTION LIMIT = -1;
", m_conn);
m_conn.Open();
m_createdb_cmd.ExecuteNonQuery();
m_conn.Close();

connStr = "Server=localhost;Port=5432;User Id=postgres;Password=enter;Database=testDb";
m_conn = new NpgsqlConnection(connStr);
m_createtbl_cmd = new NpgsqlCommand(
"CREATE TABLE table1(ID CHAR(256) CONSTRAINT id PRIMARY KEY, Title CHAR)"
, m_conn);
m_conn.Open();
m_createtbl_cmd.ExecuteNonQuery();
m_conn.Close();

这里不推荐使用var。我使用它是因为我不知道返回的类型是什么,但你应该知道。

请注意原始字符串 (@) 的使用。它使字符串构建变得简单。

不要在 Postgresql 中使用双引号括起来的标识符,除非该标识符是非法的。这会让你的生活更加艰难。

关于c# - Postgresql - 动态创建数据库和表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com