MemFire Cloud 提供Python、Java、spring、golang、node.js、C++、C#、小程序开发示例,讲述如何编译执行程序,帮助用户如何采用多种语言来使用连接MemFire Cloud的云数据库。

MemFireDB兼容PostgreSQL11.2,采用C# 连接 MemFire Cloud云数据库需使用Npgsql驱动。Npgsql 完全由C# 实现,是免费且开源的。接下来我们会介绍如何编写C#程序,通过Npgsql驱动来连接访问MemFire Cloud云数据库。

安装Npgsql

Npgsql是 PostgreSQL 数据库的 ADO.NET 规范的实现,采用 C# 语言编写的驱动程序,适用于所有 .NET 语言。

1、通过VSCode的管理NuGet安装。

(1)在VSCode的扩展插件中,搜索并且安装NuGet Package Manager扩展插件;

(2)使用CTRL + SHIFT + P,输入> NuGet ,在下拉框中选择>NuGet Package Manager:Add Package

(3)选择浏览,搜索Npgsql,选择合适的版本进行安装。

2、采用命令行的方式进行安装: 在 Windows、Linux 和 macOS 上安装 .NET Core、.NET 5 及更高版本,参考地址:https://docs.microsoft.com/zh-cn/dotnet/core/install/
安装完成后,可以通过 .NET CLI 的通用驱动程序dotnet来安装Npgsql。

  dotnet add package Npgsql
  

创建MemFire Cloud云数据库

登录MemFire Cloud平台,新建数据库,在数据库管理栏中,点击该数据库的“连接信息”,如下图所示,可以获得该数据库的连接配置信息。

编写程序

1、新建文件夹HelloWord,启动 Visual Studio Code,从主菜单中选择“文件”->“打开文件夹”打开HelloWord文件夹;

2、在“终端”中输入以下命令:

  dotnet new console --framework net6.0
  

3、将 Program.cs 的内容替换为以下代码:

下面是一段C#语言连接MemFire Cloud云数据库,创建数据表,插入数据的一段代码。
备注说明:使用新创建的数据库连接信息替换以下代码中的数据库配置信息,包括数据库连接IP、端口、用户名、密码、数据库名称。

  using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Npgsql;
namespace PostgreSQL
{
    class TestConnect
    {
        static void Main()
        {
            // 建立连接
            string connString = "Host=xxxxx;Port=5433;Username=aaaa123;Password=xxxxx;Database=xxxxxx";
            var conn = new NpgsqlConnection(connString);
            // 打开一个数据库连接
            conn.Open();

            var cmd = new NpgsqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "DROP TABLE IF EXISTS public.employees";
            cmd.ExecuteNonQuery();

            // 创建数据表
            cmd.CommandText = "CREATE TABLE public.employees (employee_no integer PRIMARY KEY, name text UNIQUE,department text NOT NULL)";
            cmd.ExecuteNonQuery();
            Console.WriteLine("建表成功");

            // 插入数据
            string SQL = "insert into public.employees(employee_no, name,department) values(1, 'lining', 'Marketing'),(2, 'lisan', 'Sales'),(3, 'zhangqi', 'Operations')";
            Console.WriteLine("变更行数:" + ExecNonQuery(SQL, conn));

            // 查询结果,获得结果集
            var cmd2 = new NpgsqlCommand("select * from public.employees", conn);
            var reader = cmd2.ExecuteReader();
            while (reader.Read())
                Console.WriteLine("{0} {1} {2}", reader.GetInt32(0), reader.GetString(1), reader.GetString(2));
            // 释放资源 
            cmd2.Dispose();

            // 关闭数据库连接
            conn.Close();
            Console.ReadKey();
        }
        static int ExecNonQuery(string _SQLCommand, NpgsqlConnection _conn)
        {
            int result = 0;
            NpgsqlCommand cmd = new NpgsqlCommand(_SQLCommand, _conn);
            cmd.CommandType = CommandType.Text;
            //执行SQL语句;Insert,Update,Delete方式都可以
            result = cmd.ExecuteNonQuery();
            //释放资源
            cmd.Dispose();
            return result;
        }
    }
}
  

执行查看结果

  PS C:\Users\nimblex\Desktop\ConsoleApplication3> dotnet run
建表成功
变更行数:3
1 lining Marketing
2 lisan Sales
3 zhangqi Operations
  

在MemFire Cloud后页面查看结果

查看插入数据表中的数据

可能遇到的问题

安装Npgsql过程中,如果遇到如下报错:

  Cannot find any .csproj or .fsproj file for your project! Please fix this error and try again.
  

可执行命令,再次尝试安装Npgsql。

  dotnet new console