原作者:陆凯
- 引言
- 环境准备
- 配置实践
- 实验总结
引言
MogDB是一款商业版关系型数据库管理系统,它提供了强大的功能和性能,可以满足各种企业级应用的需求。本文将介绍如何在.NET项目中使用Npgsql驱动配置数据源进行远程连接,通过Npgsql提供的一系列数据库接口完成数据库表的增删改查等基本操作
环境准备
虚拟机:VMware 17 pro
架构:x86_64
源端系统:windows 11
C#环境:SDK (https://dotnet.microsoft.com/en-us/download)
开发平台:vscode(https://code.visualstudio.com/docs/setup/setup-overview)
目标端数据库版本:MogDB 3.0.3
配置实践
1.安装vscode
官网下载vscode并安装,安装完成后可以通过下载扩展包chinese实现界面的汉化

2.C#扩展包安装
安装C#扩展包是为了让平台能够支持.NET项目的开发,通过左侧边栏快捷方式下载扩展包C#


3.安装SDK
官网下载.NET SDK并安装后,可以通过终端呼出dotnet

4.创建.NET项目
首先创建一个空文件夹NET_program作为项目文件夹,在vscode中选择打开该文件夹

使用快捷命令ctrl+shift+`打开终端,使用dotnet命令在这个打开的终端里面创建一个基础的控制台程序。
dotnet new console --name NET_program

点击“Program.cs”,vscode会自动安装OmniSharp插件

5.项目添加Npgsql驱动
dotnet add package Npgsql --version 6.0.10

6.数据库服务端配置
gs_om -t start
#白名单文件添加源端主机ip
gs_guc reload -N all -I all -h "host all all xx.xx.xx.xx/32 md5"
gs_guc reload -N all -I all -c "listen_addresses='*'"
#创建lukai用户
gsql>create user lukai with password 'Enmotech@123';
gsql>grant all privileges to lukai;
7.测试连接
编辑Program.cs文件
using Npgsql;
class Program
{
static void Main(string[] args)
{
var cs = "Server=192.168.57.130;Port=15400;Username=lukai;Password=Enmotech@123;Database=postgres;SSL Mode=Disable;";
using (var con = new NpgsqlConnection(cs))
{
con.Open();
// 创建表
CreateTable(con,"CREATE TABLE test_npgsql(id SERIAL PRIMARY KEY,info VARCHAR)");
// 插入数据
InsertData(con, "小磐");
InsertData(con, "小维");
InsertData(con, "小陆");
InsertData(con, "小凯");
// 查询数据
var data = SelectData(con);
foreach (var item in data)
{
Console.Write(item);
Console.WriteLine();
}
// 更新数据
UpdateData(con, 1, "新的数据");
// 删除数据
DeleteData(con, 2);
// 查询数据
var data_ = SelectData(con);
foreach (var item in data_)
{
Console.Write(item);
Console.WriteLine();
}
}
}
static void CreateTable(NpgsqlConnection con, string sql)
{
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = con;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
static void InsertData(NpgsqlConnection con, string info)
{
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = con;
cmd.CommandText = "INSERT INTO test_npgsql(info) VALUES(@info)";
cmd.Parameters.AddWithValue("info", info);
cmd.ExecuteNonQuery();
}
}
static List<string> SelectData(NpgsqlConnection con)
{
var data = new List<string>();
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = con;
cmd.CommandText = "SELECT * FROM test_npgsql";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
data.Add(reader.GetInt32(0).ToString());
data.Add(reader.GetString(1));
}
}
}
return data;
}
static void UpdateData(NpgsqlConnection con, int id, string newData)
{
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = con;
cmd.CommandText = "UPDATE test_npgsql SET info = @newData WHERE id = @id";
cmd.Parameters.AddWithValue("newData", newData);
cmd.Parameters.AddWithValue("id", id);
cmd.ExecuteNonQuery();
}
}
static void DeleteData(NpgsqlConnection con, int id)
{
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = con;
cmd.CommandText = "DELETE FROM test_npgsql WHERE id = @id";
cmd.Parameters.AddWithValue("id", id);
cmd.ExecuteNonQuery();
}
}
}
保存后,在终端执行
dotnet run

实验总结
通过本次实验,成功使用Npgsql驱动连接MogDB数据库,并进行了表的数据操作,Npgsql提供了方便易用的API,使得在.NET平台上操作数据库变得简单高效。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




