0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

.Net 6: C# で PostgreSQL の Create

Posted at

プロジェクトの作成

mkdir Create01
cd Create01
dotnet new console
dotnet add package Npgsql --version 7.0.0-preview.6

フォルダー構造

$ tree -L 1
.
├── Create01.csproj
├── Program.cs
└── obj
Program.cs
// -------------------------------------------------------------------
/*
	Program.cs

					Aug/09/2022

*/
// -------------------------------------------------------------------
using	System;
using	System.Data;
using	System.Text;
using	Npgsql;

// -------------------------------------------------------------------
class postgre_create
{
// -------------------------------------------------------------------
static async Task Main (string[] args)
{
	Console.WriteLine ("*** 開始 ***");

	string server="localhost";
	string str_db="city";
        string user="scott";
        string password="tiger123";

        string str_connect = "Host=" + server + ";Username="
                + user + ";Password="
                + password + ";Database=" + str_db + ";";

        await using var conn = new NpgsqlConnection(str_connect);
        await conn.OpenAsync();

	table_drop_proc (conn);

	table_create_proc (conn);

	DataTable dtable = table_prepare_proc ();

	dtable = data_prepare_proc (conn,dtable);

	Console.WriteLine ("*** 終了 ***");
}

// -------------------------------------------------------------------
/* [6]: */
static DataTable data_prepare_proc
	 (NpgsqlConnection connection,DataTable dtable)
{
	dtable = data_row_proc
		(connection,dtable,"t3461",@"広島",35867,"2009-4-21");

	dtable = data_row_proc
		(connection,dtable,"t3462",@"福山",52146,"2009-7-9");

	dtable = data_row_proc
		(connection,dtable,"t3463",@"東広島",29381,"2009-9-19");

	dtable = data_row_proc
		(connection,dtable,"t3464",@"呉",75836,"2009-7-29");

	dtable = data_row_proc
		(connection,dtable,"t3465",@"尾道",18924,"2009-11-2");

	dtable = data_row_proc
		(connection,dtable,"t3466",@"竹原",71456,"2009-10-7");

	dtable = data_row_proc
		(connection,dtable,"t3467",@"三次",92391,"2009-9-9");

	dtable = data_row_proc
		(connection,dtable,"t3468",@"大竹",75843,"2009-8-16");

	dtable = data_row_proc
		(connection,dtable,"t3469",@"府中",49123,"2009-10-24");

	return	dtable;
}

// -------------------------------------------------------------------
/* [6-4]: */
static DataTable data_row_proc
	(NpgsqlConnection connection,DataTable dtable,
	string id_a,string name_a,int population_a,string str_date)
{
	DataRow drow = dtable.NewRow ();
	drow["ID"] = id_a;
	drow["NAME"] = name_a;
	drow["POPULATION"] = population_a.ToString ();
	drow["DATE_MOD"] = str_date;

	dtable.Rows.Add (drow);

	insert_proc (connection,id_a,name_a,population_a,str_date);

	return	dtable;
}

// -------------------------------------------------------------------
static DataTable table_prepare_proc ()
{
	DataTable dtable = new DataTable ("cities");

	dtable.Columns.Add (new DataColumn ("id",typeof (string)));
	dtable.Columns.Add (new DataColumn ("name",typeof (string)));
	dtable.Columns.Add (new DataColumn ("population",typeof (int)));
	dtable.Columns.Add (new DataColumn ("date_mod",typeof (string)));

	return dtable;
}

// ----------------------------------------------------------------
public static void table_drop_proc (NpgsqlConnection connection)
{
	string sql_str_drop = "drop table cities";

	NpgsqlCommand command = new NpgsqlCommand (sql_str_drop,connection);
	try
		{
		command.ExecuteNonQuery ();
		}
	catch	(Exception exp)
		{
		Console.Error.WriteLine ("*** error *** table_drop_proc ***");
		Console.Error.WriteLine
		("*** error *** " + exp);
		Environment.Exit (1);
		}
}

// -------------------------------------------------------------------
public static void table_create_proc (NpgsqlConnection connection)
{

	string sql_str_create = "create TABLE cities ("
			+ "ID varchar(10) NOT NULL PRIMARY KEY,"
			+ "NAME text,"
			+ "POPULATION int,"
			+ "DATE_MOD text)";

	NpgsqlCommand command = new NpgsqlCommand (sql_str_create,connection);
	command.ExecuteNonQuery ();
}

// -------------------------------------------------------------------
public static void insert_proc
	(NpgsqlConnection connection,string id_a,string name,int population_a,string str_date)
{
	StringBuilder sb_sql = new StringBuilder
	("insert into cities (id, Name, Population, date_mod) values ('"
		+ id_a + "','"
		+ name + "',"
		+ population_a + ",'"
		+ str_date + "')");

	string str_sql = sb_sql.ToString ();


	NpgsqlCommand command = new NpgsqlCommand (str_sql,connection);
	int rowsAffected = command.ExecuteNonQuery ();

	if (rowsAffected < 1)
		{
		Console.WriteLine ("rowsAffected = " + rowsAffected);
		}
}

// -------------------------------------------------------------------
}

// -------------------------------------------------------------------

実行結果

$ dotnet run
*** 開始 ***
*** 終了 ***
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?