C#连接postgre并查询数据简单代码实现

这篇博客介绍了如何在C#中通过Npgsql.dll连接并操作PostgreSQL数据库。首先,需要下载Npgsql.dll并添加引用,然后配置数据库连接参数如服务器地址、数据库名、用户名和密码等。接着,封装了获取连接字符串和数据库连接的方法。查询操作示例中,展示了如何创建SQL查询,读取数据并封装成实体类的对象。

其实跟java使用JDBC差不多 

  1. 下载一个Npgsql.dll,然后在项目中添加引用Npgsql。
  2. 配置连接数据库的参数:

这些参数最好设置为静态变量,可共享数据。

  private static bool dbIsOpen = false;//数据库是否已经打开

private static string server = "服务器地址";

private static string port = "5432";

private static string database = "库名";

private static string username = "用户名";

private static string password = "密码";

private const int MaxPool = 60;         //最大连接数

private const int MinPool = 5;          //最小连接数

private const int Conn_Timeout = 20;    //设置连接等待时间

private const int maxConnectionCount = 30;//设置检测数据库是否已经开启的最多的次数

  1. 将获取参数的方法封装起来,返回参数拼接后的字符串

public static string getConnString()

    {

         string str = "Host=" + server + ";Port=" + port + ";Database=" + database

                + ";USER ID=" + username + ";Password=" + password

                + ";pooling=true;"

                + "MaxPoolSize=" + MaxPool + ";"

                + "MinPoolSize=" + MinPool + ";"

                + "CommandTimeout=" + Conn_Timeout;

         return str;

 }

  1. 将获取连接封装成一个方法,将参数字符串传进去,将获取到的连接对象返回,与数据库交互的时候要用到。

public static NpgsqlConnection getConn()

    {

            NpgsqlConnection npsqlConn = null;

            try

            {

                npsqlConn = new NpgsqlConnection(getConnString());

            }

            catch (Exception ex)

            {

                

            }

            return npsqlConn;

}

  1. 查询方法,我自己建了实体类,里面有下边赋值的四个属性

  public static student queryStudent()

        {

            student s = null;

            NpgsqlConnection conn = null;//获取链接

            NpgsqlDataReader dr = null; 

            try

            {

                conn = getConn();

                conn.Open();

                string sql = "select name,age,gender,no from test ";

                NpgsqlCommand objCommand = new NpgsqlCommand(sql, conn);

                dr = objCommand.ExecuteReader();

                if (dr.Read())

                { //正常情况下只会有一条记录

                    //开始封装数据

                    s = new student();

                    s.Name = dr[0].ToString();

                    s.Age = int.Parse(dr[1].ToString());

                    s.Gender = dr[2].ToString();

                }

            }

            catch (Exception)

            {

                return s;//可以返回自己想打印的异常信息

                throw;

            }

            finally

            {

//用完之后必须要关闭连接

                conn.Close();

            }

            return s;

        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值