欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C#操作PostgreSQL數(shù)據(jù)庫的示例代碼

什么是PostgreSQL?

創(chuàng)新互聯(lián)公司專注于革吉網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供革吉營銷型網(wǎng)站建設(shè),革吉網(wǎng)站制作、革吉網(wǎng)頁設(shè)計(jì)、革吉網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造革吉網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供革吉網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

PostgreSQL是一個(gè)功能強(qiáng)大的開源對(duì)象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。 用于安全地存儲(chǔ)數(shù)據(jù); 支持最佳做法,并允許在處理請(qǐng)求時(shí)檢索它們。

PostgreSQL(也稱為Post-gress-Q-L)由PostgreSQL全球開發(fā)集團(tuán)(全球志愿者團(tuán)隊(duì))開發(fā)。 它不受任何公司或其他私人實(shí)體控制。 它是開源的,其源代碼是免費(fèi)提供的。

PostgreSQL是跨平臺(tái)的,可以在許多操作系統(tǒng)上運(yùn)行,如Linux,F(xiàn)reeBSD,OS X,Solaris和Microsoft Windows等。

PostgreSQL的特點(diǎn)如下

  1. PostgreSQL可在所有主要操作系統(tǒng)(即Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows等)上運(yùn)行。
  2. PostgreSQL支持文本,圖像,聲音和視頻,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和開放數(shù)據(jù)庫連接(ODBC)的編程接口。
  3. PostgreSQL支持SQL的許多功能,例如復(fù)雜SQL查詢,SQL子選擇,外鍵,觸發(fā)器,視圖,事務(wù),多進(jìn)程并發(fā)控制(MVCC),流式復(fù)制(9.0),熱備(9.0))。
  4. 在PostgreSQL中,表可以設(shè)置為從“父”表繼承其特征。
  5. 可以安裝多個(gè)擴(kuò)展以向PostgreSQL添加附加功能。

PostgreSQL工具

有一些開放源碼以及付費(fèi)工具可用作PostgreSQL的前端工具。 這里列出幾個(gè)被廣泛使用的工具:

1. psql:

它是一個(gè)命令行工具,也是管理PostgreSQL的主要工具。

pgAdmin是PostgreSQL的免費(fèi)開源圖形用戶界面管理工具。

2. phpPgAdmin:

它是用PHP編寫的PostgreSQL的基于Web的管理工具。 它基于phpMyAdmin工具管理MySQL功能來開發(fā)。它可以用作PostgreSQL的前端工具。

3. pgFouine:

它是一個(gè)日志分析器,可以從PostgreSQL日志文件創(chuàng)建報(bào)告。 專有工具有 -
Lightning Admin for PostgreSQL, Borland Kylix, DBOne, DBTools Manager PgManager, Rekall, Data Architect, SyBase Power Designer, Microsoft Access, eRWin, DeZign for Databases, PGExplorer, Case Studio 2, pgEdit, RazorSQL, MicroOLAP Database Designer, Aqua Data Studio, Tuples, EMS Database Management Tools for PostgreSQL, Navicat, SQL Maestro Group products for PostgreSQL, Datanamic DataDiff for PostgreSQL, Datanamic SchemaDiff for PostgreSQL, DB MultiRun PostgreSQL Edition, SQLPro, SQL Image Viewer, SQL Data Sets 等等。

Npgsql

提供 .NET 操作postgreSQL數(shù)據(jù)庫的相關(guān)類。支持postgreSQL7.x 及以上版本。

自定義接口及操作類

接口類

public interface IDBHelper
  {
    /// <summary>
    /// 執(zhí)行 Transact-SQL 語句并返回受影響的行數(shù)。
    /// </summary>
    int ExecuteNonQuery(string connectionString, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 在事務(wù)中執(zhí)行 Transact-SQL 語句并返回受影響的行數(shù)。
    /// </summary>
    int ExecuteNonQuery(System.Data.Common.DbTransaction trans, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 在事務(wù)中執(zhí)行查詢,返回DataSet
    /// </summary>
    DataSet ExecuteQuery(System.Data.Common.DbTransaction trans, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 執(zhí)行查詢,返回DataSet
    /// </summary>
    DataSet ExecuteQuery(string connectionString, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 在事務(wù)中執(zhí)行查詢,返回DataReader
    /// </summary>
    DbDataReader ExecuteReader(System.Data.Common.DbTransaction trans, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 執(zhí)行查詢,返回DataReader
    /// </summary>
    DbDataReader ExecuteReader(string connectionString, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 在事務(wù)中執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。忽略其他列或行。
    /// </summary>
    object ExecuteScalar(System.Data.Common.DbTransaction trans, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。忽略其他列或行。
    /// </summary>
    object ExecuteScalar(string connectionString, System.Data.CommandType cmdType, string cmdText, params System.Data.Common.DbParameter[] cmdParms);

    /// <summary>
    /// 得到數(shù)據(jù)條數(shù)
    /// </summary>
    /// <param name="tblName">表名</param>
    /// <param name="condition">條件(不需要where)</param>
    /// <returns>數(shù)據(jù)條數(shù)</returns>
    int GetCount(string connectionString, string tblName, string condition);
  }

操作類

/// <summary>
  /// 數(shù)據(jù)庫操作基類(for PostgreSQL)
  /// </summary>
  public class PostgreHelper : IDBHelper
  {
    /// <summary>
    /// 得到數(shù)據(jù)條數(shù)
    /// </summary>
    public int GetCount(string connectionString, string tblName, string condition)
    {
      StringBuilder sql = new StringBuilder("select count(*) from " + tblName);
      if (!string.IsNullOrEmpty(condition))
        sql.Append(" where " + condition);

      object count = ExecuteScalar(connectionString, CommandType.Text, sql.ToString(), null);
      return int.Parse(count.ToString());
    }

    /// <summary>
    /// 執(zhí)行查詢,返回DataSet
    /// </summary>
    public DataSet ExecuteQuery(string connectionString, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      using (NpgsqlConnection conn = new NpgsqlConnection(connectionString))
      {
        using (NpgsqlCommand cmd = new NpgsqlCommand())
        {
          PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
          using (NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd))
          {
            DataSet ds = new DataSet();
            da.Fill(ds, "ds");
            cmd.Parameters.Clear();
            return ds;
          }
        }
      }
    }

    /// <summary>
    /// 在事務(wù)中執(zhí)行查詢,返回DataSet
    /// </summary>
    public DataSet ExecuteQuery(DbTransaction trans, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();
      PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
      NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
      DataSet ds = new DataSet();
      da.Fill(ds, "ds");
      cmd.Parameters.Clear();
      return ds;
    }

    /// <summary>
    /// 執(zhí)行 Transact-SQL 語句并返回受影響的行數(shù)。
    /// </summary>
    public int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();

      using (NpgsqlConnection conn = new NpgsqlConnection(connectionString))
      {
        PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
        int val = cmd.ExecuteNonQuery();
        cmd.Parameters.Clear();
        return val;
      }
    }

    /// <summary>
    /// 在事務(wù)中執(zhí)行 Transact-SQL 語句并返回受影響的行數(shù)。
    /// </summary>
    public int ExecuteNonQuery(DbTransaction trans, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();
      PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
      int val = cmd.ExecuteNonQuery();
      cmd.Parameters.Clear();
      return val;
    }

    /// <summary>
    /// 執(zhí)行查詢,返回DataReader
    /// </summary>
    public DbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();
      NpgsqlConnection conn = new NpgsqlConnection(connectionString);

      try
      {
        PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
        NpgsqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        cmd.Parameters.Clear();
        return rdr;
      }
      catch
      {
        conn.Close();
        throw;
      }
    }

    /// <summary>
    /// 在事務(wù)中執(zhí)行查詢,返回DataReader
    /// </summary>
    public DbDataReader ExecuteReader(DbTransaction trans, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();
      PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
      NpgsqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
      cmd.Parameters.Clear();
      return rdr;
    }

    /// <summary>
    /// 執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。忽略其他列或行。
    /// </summary>
    public object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();

      using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
      {
        PrepareCommand(cmd, connection, null, cmdType, cmdText, cmdParms);
        object val = cmd.ExecuteScalar();
        cmd.Parameters.Clear();
        return val;
      }
    }

    /// <summary>
    /// 在事務(wù)中執(zhí)行查詢,并返回查詢所返回的結(jié)果集中第一行的第一列。忽略其他列或行。
    /// </summary>
    public object ExecuteScalar(DbTransaction trans, CommandType cmdType, string cmdText,
      params DbParameter[] cmdParms)
    {
      NpgsqlCommand cmd = new NpgsqlCommand();
      PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
      object val = cmd.ExecuteScalar();
      cmd.Parameters.Clear();
      return val;
    }

    /// <summary>
    /// 生成要執(zhí)行的命令
    /// </summary>
    /// <remarks>參數(shù)的格式:冒號(hào)+參數(shù)名</remarks>
    private static void PrepareCommand(DbCommand cmd, DbConnection conn, DbTransaction trans, CommandType cmdType,
      string cmdText, DbParameter[] cmdParms)
    {
      if (conn.State != ConnectionState.Open)
        conn.Open();

      cmd.Connection = conn;
      cmd.CommandText = cmdText.Replace("@", ":").Replace("?", ":").Replace("[", "\"").Replace("]", "\"");

      if (trans != null)
        cmd.Transaction = trans;

      cmd.CommandType = cmdType;

      if (cmdParms != null)
      {
        foreach (NpgsqlParameter parm in cmdParms)
        {
          parm.ParameterName = parm.ParameterName.Replace("@", ":").Replace("?",":");

          cmd.Parameters.Add(parm);
        }
      }
    }
  }

數(shù)據(jù)庫操作實(shí)例

寫入實(shí)例:

IDBHelper dbHelper = new PostgreHelper();
string connectionString = "User ID=postgres;Password=admin;Server=192.168.0.226;Port=5432;Database=MonitorDB;";
string sql = "insert into [RawLog]([ProjectID],[File],[Note]) values('項(xiàng)目編號(hào)',@file,'備注')";

string file = this.textBox1.Text;
if (!File.Exists(file)) return;

//獲取文件二進(jìn)制流
System.IO.FileStream fs = new System.IO.FileStream(file, System.IO.FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] b = br.ReadBytes((int)fs.Length);
br.Close();fs.Close();

int r = dbHelper.ExecuteNonQuery(connectionString, CommandType.Text,sql,new Npgsql.NpgsqlParameter("@file",raw_log.File));

注意:

1.查詢語句中表名、字段名需用中括號(hào)[ ] 封起來,在操作類中會(huì)統(tǒng)一替換為雙引號(hào)。
2.命令語句中的參數(shù)名格式為:@或?+ 參數(shù)名,在操作類中為統(tǒng)一替換為冒號(hào)。
3.對(duì)于二進(jìn)制流、日期等特殊類型需采用2中的參數(shù)形式
4.經(jīng)多次測(cè)試postgreSQL數(shù)據(jù)庫只直接支持(冒號(hào)+參數(shù)名)的參數(shù)方式

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

本文題目:C#操作PostgreSQL數(shù)據(jù)庫的示例代碼
標(biāo)題URL:http://aaarwkj.com/article8/pcogop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、營銷型網(wǎng)站建設(shè)外貿(mào)建站、搜索引擎優(yōu)化外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站

廣告

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

成都網(wǎng)頁設(shè)計(jì)公司
免费看男人添女人无遮挡| 初爱视频教程完整版韩国| 欧美乱码中文字幕在线观看| 国产一级二级三级亚洲| 国产亚洲男人av一区三区| 女人裸体网站无遮挡午夜| 少妇诱惑一区二区三区| 一区二区三区特黄色片| 欧美日韩精品一区二区在线播放| 欧美日韩亚洲中文字幕| 日本一区二区久久人妻高清| 熟女aaa一区二区午夜| 日本中文字幕不卡在线一区二区 | 成人自拍偷拍在线视频| 亚洲精品中文字幕乱码| 亚洲人成免费在线观看| 久久久久四虎国产精品| 极品人妻少妇精品一区二区| av一区二区三区不卡在线看| 免费黄色日韩在线观看| 国产精品日韩一区视频| 亚洲综合一区二区在线视频| 久久av天堂在线观看| 一区二区五区日韩国产| 国产,欧美,日韩,日日骚| 青青草日韩欧美在线观看| 漂亮人妻被中出中文字幕| 欧美一区二区三在线| 久久精品亚洲av三区麻豆| 亚洲成人久久久久久久| 五月婷婷丁香花综合网| 欧美日韩国产成人一区| 国产白丝免费在线观看| 国产亚洲欧美成人精品久久| 日韩二区三区在线观看| 在线免费观看成人午夜福利| 五月婷婷六月丁香免费视频| 日韩欧美国产精品福利| 麻豆精品情欲人妻二区| 日本欧美自拍偷拍高清| 高清一区高清二区高清三区|