C#中怎么訪問postgresql數(shù)據(jù)庫

這篇文章給大家介紹C#中怎么訪問postgresql數(shù)據(jù)庫,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括潁州網(wǎng)站建設(shè)、潁州網(wǎng)站制作、潁州網(wǎng)頁制作以及潁州網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,潁州網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到潁州省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

  • 為了訪問PostgreSQL數(shù)據(jù)庫,需要采用Npgsql包,.Net Data Provider for Postgresql的組件。在C#中通過調(diào)用這個封裝好的庫來訪問PostgreSQL。

  • 解壓縮zip文件,把解壓縮的目錄中的Npgsql.dll、Mono.Security.dll復(fù)制到C#工程的obj目錄下,然后在VS2008中,把 Npgsql.dll文件加入到References。

  • 在需要使用Npgsql的C#文件頭,加入如下的using語句。

using Npgsql;
  • 創(chuàng)建一個PostgreSQL的數(shù)據(jù)庫連接

/* 用指定的connectionString,去實(shí)例化一個NpsqlConnection的對象*/ 
string connectionString = "Server=127.0.0.1;Port=5432;User Id=test;Password=test;Database=testdb;" 
NpgsqlConnection conn = new NpgsqlConnection(string connectionString); 
// 打開一個數(shù)據(jù)庫連接,在執(zhí)行相關(guān)SQL之前調(diào)用 
conn.Open(); 
//關(guān)閉一個數(shù)據(jù)庫連接,在執(zhí)行完相關(guān)SQL之后調(diào)用 
conn.Close(); 
/* 用指定的connectionString,去實(shí)例化一個NpsqlConnection的對象*/
string connectionString = "Server=127.0.0.1;Port=5432;User Id=test;Password=test;Database=testdb;"
NpgsqlConnection conn = new NpgsqlConnection(string connectionString);
// 打開一個數(shù)據(jù)庫連接,在執(zhí)行相關(guān)SQL之前調(diào)用
conn.Open();
//關(guān)閉一個數(shù)據(jù)庫連接,在執(zhí)行完相關(guān)SQL之后調(diào)用
conn.Close();
  • 用NpgsqlCommand.ExecuteScalar()方法獲得唯一值的檢索結(jié)果

try 
{ 
string sql = "select count(*) from test"; 
conn.Open(); 
NpgSqlCommand objCommand = new NpgSqlCommand(sql, conn); 
int count = Convert.ToInt32(objCommand.ExecuteScalar()); 
} 
finally 
{ 
conn.Close(); 
} 
try
{
string sql = "select count(*) from test";
conn.Open();
NpgSqlCommand objCommand = new NpgSqlCommand(sql, conn);
int count = Convert.ToInt32(objCommand.ExecuteScalar());
}
finally
{
conn.Close();
}
  • 用NpgsqlCommand.ExecuteReader() 方法獲得一個結(jié)果集的檢索結(jié)果(conn的Open和Close調(diào)用省略)

string sql = "select * from test"; 
NpgsqlCommand objCommand = new NpgsqlCommand(sql,conn); 
NpgsqlDataReader dr = command.ExecuteReader(); 
while(dr.Read()) 
{ 
for (i = 0; i < dr.FieldCount; i++) 
{ 
Console.Write("{0} \t", dr[i]); //獲得字段名 
} 
int testId = dr["id"]; // 獲得指定字段的值。(id是test表的一個字段) 
…… 
Console.WriteLine(); 
} 
dr.Close(); 
string sql = "select * from test";
NpgsqlCommand objCommand = new NpgsqlCommand(sql,conn);
NpgsqlDataReader dr = command.ExecuteReader();
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]); //獲得字段名
}
int testId = dr["id"]; // 獲得指定字段的值。(id是test表的一個字段)
……
Console.WriteLine();
}
dr.Close();
  • 用NpgsqlCommand.ExecuteNonQuery()方法對指定表進(jìn)行添加、更新和刪除一條記錄的操作

添加記錄:
string sql = "insert test values (1,200)"; 
NpgsqlCommandobjCommand = new NpgsqlCommand(sql, conn); 
objCommand.ExecuteNonQuery(); 
string sql = "insert test values (1,200)";
NpgsqlCommandobjCommand = new NpgsqlCommand(sql, conn);
objCommand.ExecuteNonQuery();
更新記錄
sql = "update test set price=300 where id=1"; 
NpgsqlCommandobjCommand = new NpgsqlCommand(sql, conn); 
objCommand.ExecuteNonQuery(); 
sql = "update test set price=300 where id=1";
NpgsqlCommandobjCommand = new NpgsqlCommand(sql, conn);
objCommand.ExecuteNonQuery();
刪除記錄
sql = "delete from test where id=1"; 
NpgsqlCommandobjCommand = new NpgsqlCommand(sql, conn); 
objCommand.ExecuteNonQuery(); 
sql = "delete from test where id=1";
NpgsqlCommandobjCommand = new NpgsqlCommand(sql, conn);
objCommand.ExecuteNonQuery();
  • 用NpgsqlDataAdapter.Fill方法,把檢索的結(jié)果集放到DataSet object中,這樣可以使用DataSet object設(shè)置。DotNet的DataGridView控件的DataSource屬性,這樣在DataGridView中顯示從表中取出的所有記錄。

string sql = "select id,price from test"; 
DataSet ds = new DataSet(); 
NpgsqlDataAdapter objAdapter = new NpgsqlDataAdapter(sql, conn); 
objAdapter.Fill(ds, "a"); //“a”這個表是自定義的 
dgvBaseResult.DataSource = ds.Tables["a"]; //dgvBaseResult是DataGridView的一個Object。 
string sql = "select id,price from test";
DataSet ds = new DataSet();
NpgsqlDataAdapter objAdapter = new NpgsqlDataAdapter(sql, conn);
objAdapter.Fill(ds, "a"); //“a”這個表是自定義的
dgvBaseResult.DataSource = ds.Tables["a"]; //dgvBaseResult是DataGridView的一個Object。
注:SQL語句設(shè)置也可以用下面的語句 objAdapter.SelectCommand.CommandText = sql;

關(guān)于C#中怎么訪問postgresql數(shù)據(jù)庫就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文標(biāo)題:C#中怎么訪問postgresql數(shù)據(jù)庫
網(wǎng)頁地址:http://muchs.cn/article38/jpippp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站、面包屑導(dǎo)航品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計