C#访问PostGreSQL数据库的方法 http://www.jb51.net/article/35643.htm

这次的项目中的一个环节要求我把PostGreSQL数据取出来,然后放到SqlServer里,再去处理分析。

http://www.jb51.net/article/35643.htm

-

我对PostGreSQL只是一知半解,记录这个过程是希望如果以后微软技术方向的人遇到类似的需求,可以有个比较直接的的参考。

在不熟悉的知识领域里,总是有搜索引擎可以帮到我。

初步了解PostGreSQL数据库及数据形态

首先我想看看PostGreSQL的数据库以及我想要获取的数据形态是什么样子的,Linux和PostGreSQL这两个关键字我都不熟悉,搜了一下找到了一个可以连通PostGreSQL数据库的Windows客户端,叫pgAdmin,我装的是III版本,应该是比较新的,下载安装后看到界面:

点击那个电源插头的logo可以新建服务器连接

名称就是在PGAdmin客户端的显示名,可以自定义。

SSL呢,有这么多选项,我不是很了解干什么用的,反正我选的允许。

端口号,默认PostGreSQL的端口号是5432,当然可以被修改,自定义成别的端口号

全部填写完点击确定,就可以看到数据库了。

我不在客户现场,连不上PostGreSQL的库,所以下面就不能截图了。

在PGAdmin里,可以写查询语句,如果你有权限的话,可以看到返回的结果集。

我点开一个窗口,试着写了一条查询语句如下:

Select top 10 * from TableObj

执行,发现结果集窗口提示语法错误,问下群里的兄弟们,得知,正确的写法应该是这样的:

Select * from TableObj limit 5

语法规则跟sql语句还是有区别的。

执行,提示找不到对象“TableObj”找到TableObj的上一层容器“ContainerObj”,修改如下

SELECT* FROM ContainerObj.TableObj limit 5

点击执行,终于看到了结果集。

相对sqlserver来说,PGAdmin的结果集显示界面表头都有两行,一行是字段名,一行是字段的数据类型。这点很有爱。

在PostGreSQL的查询语句中,大小写是不敏感的。

关于PostgreSql语法规则,在CSDN上找到了《PostgreSql语法详细手册》,不过这家伙要三个资源分。

好了看到PostGreSQL数据库了,下面我要尝试敲C#代码测试去取PostGreSQL的数据。

C#连接PostGreSQL数据库

有个东东,叫Npgsql,是PostgreSQL的一个.NET数据提供程序。首先需要下载它,实际上我们只需要引用两个dll:

经过我的测试,如果只引用了Npgsql.dll,那么你的程序运行起来之后会报错,提示找不到对Mono.Security.dll引用的依赖项。

引用了这两个dll,你还需要在你的代码中加上using。

using Npgsql;

代码就很简单了。

写了个拼字符串的,比较二。txt什么什么的都是Winform的textbox

复制代码 代码如下:

///

/// 根据填写的信息拼数据库连接串

///

/// 数据库连接串

private string getConnectStr()

{

StringBuilder sb = new StringBuilder();

string str = string.Empty;

sb.Append("Server=");

sb.Append(txtServer.Text);

sb.Append(";Port=");

sb.Append(txtPort.Text);

sb.Append(";User Id=");

sb.Append(txtUID.Text);

sb.Append(";Password=");

sb.Append(txtPassword.Text);

sb.Append(";Database=");

sb.Append(txtDB.Text);

sb.Append(";");

str = sb.ToString();

return str;

}

实际上数据库连接串就是这么样的一个格式

复制代码 代码如下:

"Server=192.168.1.100;Port=5432;UserId=mike;Password=secret;Database=mikedb;"

///

/// 测试连接PostGreSQL数据库

///

/// Success/Failure

private string TestConnection()

{

string str = getConnectStr();

string strMessage = string.Empty;

try

{

NpgsqlConnection conn = new NpgsqlConnection(str);

conn.Open();

strMessage = "Success";

conn.Close();

}

catch

{

strMessage = "Failure";

}

return strMessage;

}

///

/// 测试获取数据(使用要加try、catch)

///

private void TestGetData()

{

IDbConnection dbcon;

dbcon = newNpgsqlConnection(getConnectStr());

dbcon.Open();

IDbCommand dbcmd = dbcon.CreateCommand();

dbcmd.CommandText = " SELECT * FROM ContainerObj.TableObj limit 5";

IDataReader dr = dbcmd.ExecuteReader();

string strResult = string.Empty;

while (dr.Read())

{

stringstrRecord_Time_Int = dr[0].ToString();

stringstrIP = dr[1].ToString();

stringstrFullPath = dr[2].ToString();

stringstrUpload_Size = dr[3].ToString();

stringstrDownLoad_Size = dr[4].ToString();

strResult += "record_time_int: " + strRecord_Time_Int+ " | ip:" + strIP + " | fullpath:" +strFullPath + " | upload_size:" +strUpload_Size + " | download_size:"+ strDownLoad_Size + "\n";

}

dr.Close();

dr = null;

lblRes.Text = strResult;

}

Form很简单,只为测试功能。下面截图是之前在现场截的,处理了一下,隐去了一些信息。

详细出处参考:http://www.jb51.net/article/35643.htm

C#访问PostGreSQL数据库的方法 http://www.jb51.net/article/35643.htm

时间: 2024-10-21 19:58:56

C#访问PostGreSQL数据库的方法 http://www.jb51.net/article/35643.htm的相关文章

C#访问postgresql数据库

最近开始做C#的DotNet的工作,因为对PostgreSQL数据库比较有兴趣,所以自己研究了一下如何访问PostgreSQL的 数据库的问题. 1.为了访问PostgreSQL数据库,需要从pgfoundry网站,下载Npgsql .Net Data Provider for Postgresql的组件. 访问 URL:http://pgfoundry.org/frs/?group_id=1000140 注:因为使用的是DotNet3.5,所以下载了Npgsql2.0.6-bin-ms.net

Java获取系统环境变量(System Environment Variable)和系统属性(System Properties)以及启动http://m.jb51.net/article/83454.htm参数的方法

系统环境变量(System Environment Variable): 在Linux下使用export $ENV=123指定的值.获取的方式如下: Map<String,String> map = System.getenv(); Set<Map.Entry<String,String>> entries = map.entrySet(); for (Map.Entry<String, String> entry : entries) { System.o

JAVA 访问MySQL数据库(使用方法及测试)

最近我们的JAVA课程讲到数据库,老师一直强调搭建数据库环境(JDBC)的重要性,刚好我的电脑前段时间重装过,也可以趁着这个机会再来回顾一遍JDBC的搭建. 说明:本文使用的JDBC框架是基于JAVA SE 1.8 & MySQL & Eclipse 工具下载: MySQL V5.5(x64) 64位 MySQL V5.5(x86) 32位 要根据你电脑的情况选择相应的MySQL版本.我的电脑是64位,所以本篇文章是使用64位讲解的,如果有同学在使用32位版本的时候出现问题的可以随时联系我

访问PostgreSQL数据库

一旦创建了数据库,你就可以访问它: 运行 PostgreSQL 交互的终端程序 psql ,它允许你交互地输入.编辑.执行 SQL 命令. 使用我们现有的图形前端工具,比如 PgAccess 或者带 ODBC 支持的办公套件来创建和管理数据库.这种方法在这份教程中没有介绍. 使用多种语言绑定中的一种写一个客户应用.这些可能性在 Part IV 中有更深入的讨论. 你可能需要启动 psql 来试验本教程中的例子.你可以用下面的命令为 mydb 数据库激活它: $ psql mydb 如果你省略了数

大数据量高并发访问的数据库优化方法

一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须

使用libpqxx访问PostgreSQL数据库(mingw编译libpqxx)

编译前准备 1.安装mingw 安装mingw(不管是直接安装mingw还是其他如code::blocks附带安装的mingw),输入:gcc -v可显示如下图的版本信息,我的版本是mingw32  4.9.2. 2. 安装postgresql postgresql各个版本下地址:http://www.enterprisedb.com/products-services-training/pgdownload#windows 注意:要下载与mingw编译器对应的版本,如果是mingw32请下载3

C语言访问MySQL数据库的方法

1.添加头文件路径(MySQL安装路径中的include路径) 2.添加库文件(直接从MySQL安装路径中copy libmysql.lib即可) 3.编程操作数据库 代码 // AccessToMySQL.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <mysql.h> #pragma comment(lib,"libmysql.lib")

java访问mysql数据库的方法

1.下载接口程序包mysql-connector-java-5.0.8-bin.jar 下载地址 2.编程 (1)加载驱动 (2)编程连接操作 (3)返回结果处理 编程示例 import java.sql.*; public class Access2Database{ public Connection getConn(){ Connection conn=null; try{ Class.forName("com.mysql.jdbc.Driver"); String url=&q

php操作MySQL数据库的方法和解析

对于许多web应用程序而言,数据库都是其核心所在.数据库几乎可以用来存储所有你想要检索和更新的任何信息 下面介绍两种数据库的访问方式: ①. MySQLi 访问MySQLi (面向对象)数据库,其中MYSQLi又分为 面向对象 和 面向过程两种形式 ②. PDO访问MYSQL数据库 MySQLi 和 PDO那个更好??? MySQLi 和 PDO 各有优势 1.MySQLi只针对MySQL数据库,PDO支持12种数据库 2.两者都是面向对象, 但 MySQLi 还提供了 API 接口 3.两者都