我對(duì)PostGreSQL只是一知半解,記錄這個(gè)過(guò)程是希望如果以后微軟技術(shù)方向的人遇到類(lèi)似的需求,可以有個(gè)比較直接的的參考。
在不熟悉的知識(shí)領(lǐng)域里,總是有搜索引擎可以幫到我。
初步了解PostGreSQL數(shù)據(jù)庫(kù)及數(shù)據(jù)形態(tài)
首先我想看看PostGreSQL的數(shù)據(jù)庫(kù)以及我想要獲取的數(shù)據(jù)形態(tài)是什么樣子的,Linux和PostGreSQL這兩個(gè)關(guān)鍵字我都不熟悉,搜了一下找到了一個(gè)可以連通PostGreSQL數(shù)據(jù)庫(kù)的Windows客戶端,叫pgAdmin,我裝的是III版本,應(yīng)該是比較新的,下載安裝后看到界面:
點(diǎn)擊那個(gè)電源插頭的logo可以新建服務(wù)器連接
名稱(chēng)就是在PGAdmin客戶端的顯示名,可以自定義。
SSL呢,有這么多選項(xiàng),我不是很了解干什么用的,反正我選的允許。
端口號(hào),默認(rèn)PostGreSQL的端口號(hào)是5432,當(dāng)然可以被修改,自定義成別的端口號(hào)
全部填寫(xiě)完點(diǎn)擊確定,就可以看到數(shù)據(jù)庫(kù)了。
我不在客戶現(xiàn)場(chǎng),連不上PostGreSQL的庫(kù),所以下面就不能截圖了。
在PGAdmin里,可以寫(xiě)查詢語(yǔ)句,如果你有權(quán)限的話,可以看到返回的結(jié)果集。
我點(diǎn)開(kāi)一個(gè)窗口,試著寫(xiě)了一條查詢語(yǔ)句如下:
Select top 10 * from TableObj
執(zhí)行,發(fā)現(xiàn)結(jié)果集窗口提示語(yǔ)法錯(cuò)誤,問(wèn)下群里的兄弟們,得知,正確的寫(xiě)法應(yīng)該是這樣的:
Select * from TableObj limit 5
語(yǔ)法規(guī)則跟sql語(yǔ)句還是有區(qū)別的。
執(zhí)行,提示找不到對(duì)象“TableObj”找到TableObj的上一層容器“ContainerObj”,修改如下
SELECT* FROM ContainerObj.TableObj limit 5
點(diǎn)擊執(zhí)行,終于看到了結(jié)果集。
相對(duì)sqlserver來(lái)說(shuō),PGAdmin的結(jié)果集顯示界面表頭都有兩行,一行是字段名,一行是字段的數(shù)據(jù)類(lèi)型。這點(diǎn)很有愛(ài)。
在PostGreSQL的查詢語(yǔ)句中,大小寫(xiě)是不敏感的。
關(guān)于PostgreSql語(yǔ)法規(guī)則,在CSDN上找到了《PostgreSql語(yǔ)法詳細(xì)手冊(cè)》,不過(guò)這家伙要三個(gè)資源分。
好了看到PostGreSQL數(shù)據(jù)庫(kù)了,下面我要嘗試敲C#代碼測(cè)試去取PostGreSQL的數(shù)據(jù)。
C#連接PostGreSQL數(shù)據(jù)庫(kù)
有個(gè)東東,叫Npgsql,是PostgreSQL的一個(gè).NET數(shù)據(jù)提供程序。首先需要下載它,實(shí)際上我們只需要引用兩個(gè)dll:
經(jīng)過(guò)我的測(cè)試,如果只引用了Npgsql.dll,那么你的程序運(yùn)行起來(lái)之后會(huì)報(bào)錯(cuò),提示找不到對(duì)Mono.Security.dll引用的依賴(lài)項(xiàng)。
引用了這兩個(gè)dll,你還需要在你的代碼中加上using。
using Npgsql;
代碼就很簡(jiǎn)單了。
寫(xiě)了個(gè)拼字符串的,比較二。txt什么什么的都是Winform的textbox
新聞熱點(diǎn)
疑難解答
圖片精選