C#访问postgresql数据库类MyPostDB的实现
生活随笔
收集整理的這篇文章主要介紹了
C#访问postgresql数据库类MyPostDB的实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ?為了訪問PostgreSQL數(shù)據(jù)庫,需要從pgfoundry網(wǎng)站,下載Npgsql .Net Data Provider for Postgresql的組件。
訪問 URL:http://pgfoundry.org/frs/?group_id=1000140,請按照自己的VS及.NET版本下載相應的版本。下載后解壓縮zip文件,把解壓縮的目錄中的Npgsql.dll、Mono.Security.dll復制到C#工程的obj目錄下,然后在VS中添加引用using Npgsql即可;
可以參照:
? ?1.C#訪問MS SQL Server數(shù)據(jù)庫;
? ?2.Python訪問MS SQL Server數(shù)據(jù)庫;
? ?3.Java訪問MS SQL Server數(shù)據(jù)庫;
? ? ? ? ? ? (1)按照C#利用SQLConnection訪問SQL Server數(shù)據(jù)庫的習慣,首先新建一個DBUSer.cs的類,用來保存用戶登錄信息
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;public abstract class DBUser {public static string ServerPort;public static string UserName;public static string ServerName;public static string DBName;public static string Pwd;public static int LoginFlag; } ? ? ? ?(2)新建一個MyPostDB.cs類,代碼如下:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data; using Npgsql;public class MyPostDB {DataSet DS;bool ECode;string ErrString;NpgsqlConnection Conn = new NpgsqlConnection();public MyPostDB(string ServerName,string ServerPort,string DBName,string UserName,string Pwd){ECode = false;Conn.ConnectionString = "Server=" + ServerName + ";Port=" +ServerPort + ";User Id=" + UserName + ";Password=" + Pwd + ";Database=" + DBName;try{Conn.Open();}catch(Exception e){ECode = true;ErrMessage=e.Message;}}public DataSet GetRecordSet(string sql){NpgsqlCommand sqlCmd = new NpgsqlCommand();sqlCmd.Connection = Conn;sqlCmd.CommandText = sql ;try{NpgsqlDataAdapter adp = new NpgsqlDataAdapter(sqlCmd);DS = new DataSet();adp.Fill(DS);}catch (Exception e){ErrString = e.Message;ECode = true;return null;}return DS;}public int ExecuteSQLScalar(string Sqls){string s;NpgsqlCommand sqlCmd= new NpgsqlCommand();sqlCmd.Connection = Conn;sqlCmd.CommandText = Sqls;sqlCmd.CommandType = CommandType.Text;try{s = sqlCmd.ExecuteScalar().ToString();}catch (Exception e){ErrString = e.Message;ECode = true;return -1;}return(int.Parse(s)); }public string ExecuteSQLScalarTOstring(string Sqls){string s;NpgsqlCommand sqlCmd = new NpgsqlCommand();sqlCmd.Connection = Conn;sqlCmd.CommandText = Sqls;sqlCmd.CommandType = CommandType.Text;try{s = sqlCmd.ExecuteScalar().ToString();}catch (Exception e){ErrString = e.Message;ECode = true;return "-1";}return s;}public string ExecuteSQLWithTrans(string Sqls){string s;NpgsqlTransaction myTrans;myTrans=Conn.BeginTransaction();NpgsqlCommand sqlCmd = new NpgsqlCommand();sqlCmd.Connection = Conn;sqlCmd.CommandText = Sqls;sqlCmd.CommandType = CommandType.Text;sqlCmd.Transaction =myTrans;sqlCmd.ExecuteNonQuery(); //Sqls="SELECT @@IDENTITY AS ID";sqlCmd.CommandText =Sqls;try{s = sqlCmd.ExecuteScalar().ToString();}catch (Exception e){ErrString = e.Message;ECode = true;myTrans.Commit(); return "";}myTrans.Commit();return(s);}public void ExecuteSQL(string Sqls){NpgsqlCommand sqlCmd = new NpgsqlCommand();sqlCmd.Connection = Conn;sqlCmd.CommandText = Sqls;sqlCmd.CommandType = CommandType.Text;try{sqlCmd.ExecuteNonQuery();}catch (Exception e){ErrString = e.Message;ECode = true;}}public NpgsqlDataReader DBDataReader(string Sqls){NpgsqlCommand sqlCmd = new NpgsqlCommand();sqlCmd.Connection = Conn;sqlCmd.CommandText = Sqls;sqlCmd.CommandType = CommandType.Text;try{return sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);}catch (Exception e){ErrString = e.Message;ECode = true;return null;}}public void DBClose(){try{Conn.Close();}catch (Exception e){ErrString = e.Message;ECode = true;}}public bool ErrorCode(){return ECode;}public string ErrMessage(){return ErrString;}~MyPostDB(){} }
總結
以上是生活随笔為你收集整理的C#访问postgresql数据库类MyPostDB的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#服务器编程:WebService、A
- 下一篇: C#连接Excel和Access(包括2