C#连接数据库PostSQL-NpgSQL

本文介绍了如何使用C#的NpgSQL库连接和操作PostgreSQL数据库,包括NpgSQL的安装、数据库连接、增删改查的基本操作。作者通过封装方法简化了数据库操作,并提供了完整的使用示例。
摘要由CSDN通过智能技术生成

C#NpgSQL连接数据库PostSQL

  最近在做一个GIS的图像处理系统,功能设计涵盖大量的数据存储和访问。思来想去:数据存储到SHP文件的字段中,虽然比较方便但是访问检索总是不那么方便,数据库是必须的。桌面端连接数据库之前确实没有整过,只用JS管理过一次。就那次还是学校作业直接拷贝桂桂大兄弟的,这次自己搞了。C#连接本地PostSQL数据库。加油,阿喵一定行。
  主要内容: ①NpgSQL使用,②数据库连接,③数据库增删改查。



1. NpgSQL使用
2. 数据库使用逻辑及说明
2. 数据库连接
3. 增删改查常用方法
4. 使用示例

1.NpgSQL使用

  应该是专门用来管理PostSQL数据库的吧,开源的。其他的数据库不知道能不能访问。PostSQL就不多说了,安装很方便,使用起来自带的Pgadmin好像确实有点捉急,配合Navicat管理倒是不错。使用C#访问本地数据库,特别是PostSQL的话,就用NpgSQL就Ok了,直接用NuGet为你的解决方案添加即可。右击选择“管理NuGet程序包”
在这里插入图片描述

  在弹出的对话框中搜索NpgSQL,选择对应版本就可以了。具体版本我没找到明确说明,但是我 自己的程序是4.0,所以选了一个比较低的版本——2.2.0。还可以使用没有大问题。
在这里插入图片描述
在这里插入图片描述

2.数据库使用逻辑及说明

  使用代码访问操作部署在本地的数据,其实比我们想象的复杂很多。不然也不会单独有专门的课程、职业来研究和从事相关的工作。我们个人使用的话,可视化来讲无非是在一个表格(Table)中插入或者修改值。只要我们细心一点,就能按时按需完成操作。可是当我们需要修改、查找大量数据的时候,就会力不从心。
  所以数据库本身也有一定的机制来保证大量数据能够存储的稳定,池。最大限度访问量是一个池,池有点抽象,安全得来讲就是数据库是个房间,进出房间要把门关好。不仅是大量的数据,还可能有大量用户同时操作。这其中不同人的身份、权限不一样,能进行的操作的也不一样。不仅如此,一个数据同时供多人的查看,就可能会发生的一定的错误。(回忆起了老师上课讲的范式啊什么的,忘了OJ2…)
  说明:本文不搞复杂就是连接、增删改查,自己的系统用不到;太严谨的我也不会写;追求高级设定的应该不会看我的博文。对于还在连接和访问这一步纠结的小白来讲,提醒一下:以下方法对基本数据库的基本操作有所封装,我也会尽量做注释说明。

3.数据库连接

  连接本地数据库就是拿出钥匙打开房门。这把对应你本地安装的数据库、需要用户名及密码验证的钥匙,就是:连接。当然,你不会没事干就去数据库房里转一圈,所以在你的程序设计中,当需要对数据库范根操作之前,需要打开连接(Connectio.open());完事之后要关闭连接(Connection.close.())
  以下将配置连接的方法封装为“fun_getConnection”,返回一个类型为“NpgsqlConnection”的变量,其实就是连接本身。视需要,打开或关闭。

        //配置数据库连接返回数据库连接 
        public static NpgsqlConnection fun_getConnection()
        {
   
            //配置数据库连接,Port安装默认端口号为5432
            string hostname = "localhost";
            string username = "postgres";
            string password = "mypassword";
            string database = "sql——test";
            string connecstr = string.Format("PORT=5432;DATABASE={0};HOST={1};PASSWORD={2};USER ID={3};Pooling = false", database, hostname, password, username);  
            
            //配置数据库连接字符串
            NpgsqlConnection npsqlconn = new NpgsqlConnection(connecstr);  //生成数据库连接                              
             return npsqlconn;            
        }

4.数据库使用——增删改查

  还是封装,我把能封装的都封装了。不过也有一部分不太科学,适用我这个系统的需求,各位看官如需使用可能还要修改。我尽量说明白。不管增删改查都是通过设置好的连接,让它执行对应的SQL(SQL百科)语句实现数据操作。 相当于对设置好的连接发送指令,然后执行。
  相当于,完成某一功能需要两步①设置SQL语句,②执行SQL语句。我这边把编译不同的功能(增删改查)封装一个独立的方法,将执行命令的部分单独封装——“ExecuteNonQuery”,每个功能之后加入该方法进而实现。
  首先是执行命令的方法,有两个。区别在于形参是否包含待处理的SQL参数。即完整SQL语句使用执行命令一“ExecuteNonQuery”;带参SQL使用执行命令二“ExecuteCommand” 执行命令之前,通过上文所述方法获取数据库连接,并打开。使用后关闭连接。

         //执行命令方法一
        public static int ExecuteNonQuery(string sqlstr)
        {
               
            try
            {
   
                //获取数据库连接,见章节三
                NpgsqlConnection conn = fun_getConnection();
                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值