最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#訪問PostGreSQL數(shù)據(jù)庫的方法

 更新時間:2013年04月17日 11:04:19   作者:  
這次的項目中的一個環(huán)節(jié)要求我把PostGreSQL數(shù)據(jù)取出來,然后放到SqlServer里,再去處理分析。

我對PostGreSQL只是一知半解,記錄這個過程是希望如果以后微軟技術(shù)方向的人遇到類似的需求,可以有個比較直接的的參考。
在不熟悉的知識領(lǐng)域里,總是有搜索引擎可以幫到我。

初步了解PostGreSQL數(shù)據(jù)庫及數(shù)據(jù)形態(tài)

首先我想看看PostGreSQL的數(shù)據(jù)庫以及我想要獲取的數(shù)據(jù)形態(tài)是什么樣子的,Linux和PostGreSQL這兩個關(guān)鍵字我都不熟悉,搜了一下找到了一個可以連通PostGreSQL數(shù)據(jù)庫的Windows客戶端,叫pgAdmin,我裝的是III版本,應(yīng)該是比較新的,下載安裝后看到界面:

點擊那個電源插頭的logo可以新建服務(wù)器連接

名稱就是在PGAdmin客戶端的顯示名,可以自定義。
SSL呢,有這么多選項,我不是很了解干什么用的,反正我選的允許。

端口號,默認(rèn)PostGreSQL的端口號是5432,當(dāng)然可以被修改,自定義成別的端口號
全部填寫完點擊確定,就可以看到數(shù)據(jù)庫了。
我不在客戶現(xiàn)場,連不上PostGreSQL的庫,所以下面就不能截圖了。

在PGAdmin里,可以寫查詢語句,如果你有權(quán)限的話,可以看到返回的結(jié)果集。
我點開一個窗口,試著寫了一條查詢語句如下:
Select top 10 * from TableObj
執(zhí)行,發(fā)現(xiàn)結(jié)果集窗口提示語法錯誤,問下群里的兄弟們,得知,正確的寫法應(yīng)該是這樣的:
Select * from TableObj limit 5
語法規(guī)則跟sql語句還是有區(qū)別的。
執(zhí)行,提示找不到對象“TableObj”找到TableObj的上一層容器“ContainerObj”,修改如下
SELECT* FROM ContainerObj.TableObj limit 5
點擊執(zhí)行,終于看到了結(jié)果集。
相對sqlserver來說,PGAdmin的結(jié)果集顯示界面表頭都有兩行,一行是字段名,一行是字段的數(shù)據(jù)類型。這點很有愛。
在PostGreSQL的查詢語句中,大小寫是不敏感的。
關(guān)于PostgreSql語法規(guī)則,在CSDN上找到了《PostgreSql語法詳細(xì)手冊》,不過這家伙要三個資源分。
好了看到PostGreSQL數(shù)據(jù)庫了,下面我要嘗試敲C#代碼測試去取PostGreSQL的數(shù)據(jù)。
C#連接PostGreSQL數(shù)據(jù)庫

有個東東,叫Npgsql,是PostgreSQL的一個.NET數(shù)據(jù)提供程序。首先需要下載它,實際上我們只需要引用兩個dll:

經(jīng)過我的測試,如果只引用了Npgsql.dll,那么你的程序運行起來之后會報錯,提示找不到對Mono.Security.dll引用的依賴項。
引用了這兩個dll,你還需要在你的代碼中加上using。
using Npgsql;
代碼就很簡單了。
寫了個拼字符串的,比較二。txt什么什么的都是Winform的textbox

復(fù)制代碼 代碼如下:

///
/// 根據(jù)填寫的信息拼數(shù)據(jù)庫連接串
///
/// 數(shù)據(jù)庫連接串
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;
}

實際上數(shù)據(jù)庫連接串就是這么樣的一個格式
復(fù)制代碼 代碼如下:

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

///
/// 測試連接PostGreSQL數(shù)據(jù)庫
///
/// 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;
}

///
/// 測試獲取數(shù)據(jù)(使用要加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很簡單,只為測試功能。下面截圖是之前在現(xiàn)場截的,處理了一下,隱去了一些信息。

相關(guān)文章

  • 說說C#的async和await的具體用法

    說說C#的async和await的具體用法

    本篇文章主要介紹了說說C#的async和await的具體用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • C#實現(xiàn)隨機洗牌的方法

    C#實現(xiàn)隨機洗牌的方法

    這篇文章主要介紹了C#實現(xiàn)隨機洗牌的方法,涉及隨機數(shù)操作技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • 淺析C#?AsyncLocal如何在異步間進行數(shù)據(jù)流轉(zhuǎn)

    淺析C#?AsyncLocal如何在異步間進行數(shù)據(jù)流轉(zhuǎn)

    在異步編程中,處理異步操作之間的數(shù)據(jù)流轉(zhuǎn)是一個比較常用的操作,C#異步編程提供了一個強大的工具來解決這個問題,那就是AsyncLocal,下面我們就來看看AsyncLocal的原理和用法吧
    2023-08-08
  • C#中的問號(?號)用法小結(jié)

    C#中的問號(?號)用法小結(jié)

    這篇文章主要介紹了C#中的問號(?號)用法小結(jié),本文介紹了3種用法,分別作為修飾符、運算符的用法,需要的朋友可以參考下
    2014-07-07
  • C# WebClient類用法實例

    C# WebClient類用法實例

    這篇文章主要介紹了C# WebClient類用法實例,本文講解使用WebClient下載文件、OpenWriter打開一個流使用指定的方法將數(shù)據(jù)寫入到uri以及上傳文件示例,需要的朋友可以參考下
    2015-07-07
  • Unity實現(xiàn)紅酒識別的示例代碼

    Unity實現(xiàn)紅酒識別的示例代碼

    本文主要介紹了如何通過Unity實現(xiàn)紅酒識別,可以實現(xiàn)識別圖像中的紅酒標(biāo)簽,返回紅酒名稱、國家、產(chǎn)區(qū)、酒莊、類型、糖分、葡萄品種、酒品描述等信息,感興趣的可以學(xué)習(xí)一下
    2022-02-02
  • C#中多種高效定時器方法的使用詳解

    C#中多種高效定時器方法的使用詳解

    本文主要介紹了C#中多種高效定時器方法的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C#中把Datatable轉(zhuǎn)換為Json的5個代碼實例

    C#中把Datatable轉(zhuǎn)換為Json的5個代碼實例

    這篇文章主要介紹了C#中把Datatable轉(zhuǎn)換為Json的5個代碼實例,需要的朋友可以參考下
    2014-04-04
  • Unity實現(xiàn)繞任意軸任意角度旋轉(zhuǎn)向量

    Unity實現(xiàn)繞任意軸任意角度旋轉(zhuǎn)向量

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)繞任意軸任意角度旋轉(zhuǎn)向量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C#下實現(xiàn)創(chuàng)建和刪除目錄的實例代碼

    C#下實現(xiàn)創(chuàng)建和刪除目錄的實例代碼

    這篇文章主要介紹了C#下實現(xiàn)創(chuàng)建和刪除目錄的方法,功能非常實用,需要的朋友可以參考下
    2014-08-08

最新評論

青海省| 日土县| 新晃| 玉林市| 教育| 将乐县| 澄迈县| 白银市| 石柱| 马边| 浦城县| 蛟河市| 张北县| 沛县| 嘉义县| 方正县| 延庆县| 分宜县| 和平县| 子洲县| 鹤峰县| 奎屯市| 临安市| 玉屏| 柏乡县| 阜城县| 邵阳县| 忻州市| 木里| 中超| 班戈县| 股票| 唐海县| 闸北区| 中超| 香河县| 南城县| 内黄县| 会泽县| 千阳县| 额济纳旗|