c# postgresql帮助类

2023-11-09

1,安装Npgsql

2, 代码

/// <summary>
    /// PostgreSql数据库操作帮助类
    /// </summary>
    public class PostgreSqlHelper 
    {
        public static string ConnectionString = ConfigurationManager.ConnectionStrings["postgre"].ToString();


        /// <summary>
        /// 增 删 改
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExecuteSQL(string sql)
        {
            int back = -1;
            using (NpgsqlConnection connection = new NpgsqlConnection(ConnectionString))
            {
                using (NpgsqlCommand command = new NpgsqlCommand(sql, connection))
                {
                    try
                    {
                        connection.Open();
                        back = command.ExecuteNonQuery();
                    }
                    catch (NpgsqlException exception)
                    {
                        throw new Exception(exception.Message);
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
            }
            return back;
        }

        /// <summary>
        /// 增 删 改
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="paras">如果没有传null</param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql, params NpgsqlParameter[] paras)
        {
            using (NpgsqlConnection conn = new NpgsqlConnection(ConnectionString))
            {
                conn.Open();
                using (NpgsqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (paras != null)
                    {
                        cmd.Parameters.AddRange(paras);
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        /// <summary>
        /// 查询操作,返回查询结果中的第一行第一列的值
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="paras">如果没有传null</param>
        /// <returns></returns>
        public static object ExecuteScalar(string sql, params NpgsqlParameter[] paras)
        {
            using (NpgsqlConnection conn = new NpgsqlConnection(ConnectionString))
            {
                conn.Open();
                using (NpgsqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (paras != null)
                    {
                        cmd.Parameters.AddRange(paras);
                    }
                    return cmd.ExecuteScalar();

                }
            }
        }

        /// <summary>
        /// 查询并返回结果集DataTable
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="paras">如果没有传null</param>
        /// <returns></returns>
        public static DataTable ExecuteDataTable(string sql, params NpgsqlParameter[] paras)
        {
            using (NpgsqlConnection conn = new NpgsqlConnection(ConnectionString))
            {
                conn.Open();
                using (NpgsqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    if (paras != null)
                    {
                        cmd.Parameters.AddRange(paras);
                    }

                    NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(cmd);
                    DataSet dataset = new DataSet();
                    adapter.Fill(dataset);
                    return dataset.Tables[0];
                }
            }

        }

    }
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# postgresql帮助类 的相关文章

  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 在 postgres 查询中使用列表

    我有一个动态列表 list a b c d 所以长度可能会改变 我想在查询中比较这些列表值 select from student where name in all the list values 我想将列表值传递到此查询中 我怎样才能做
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 无法连接到数据库 - Postgres Job Scheduling 发布(基于 Windows 的计算机)

    我在互联网上搜索这个问题 但找不到正确的答案 这link https stackoverflow com questions 35410829 postgresql9 4 scheduling agent pgagent couldnt g
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 显式内存管理

    程序员在处理现实生活中国的C C 程序的时候 常会遇到诸如程序运行时突然退出 或占用的内存越来越多 最后不得不定期重启的一些典型状况 这些问题的源头可以追溯到C C 中的显式堆内存管理上 通常情况下 这些症状都是由于程序没有正确处理堆内存的
  • tomcat 乱码问题

    测试环境 apache tomcat 6 0 48 操作系统 win7 中文 默认GBK编码 一 浏览器采用的字符集 测试jsp
  • docker容器监控系统

    文章目录 第1章监控软件介绍 1 1监控工具 第2章Cadvisor Influxdb Grafana 2 1Cadvisor InfluxDB Grafana介绍 2 1 1Cadvisor 数据采集 2 1 2InfluxDB 数据存储
  • F - Ginger的GIAO

    F Ginger的GIAO SDUT OnlineJudge include
  • GDB调试动态库

    转载 https blog csdn net huluedeai article details 52225923 一 方法 gdb如何调试动态链接库的问题 比如我想调试的代码为动态链接库代码 我设置断点后却得到以下错误 gdb b mps
  • 你从未见过的python重点知识总结,最全面没有之一。过了这村就没这店了。

    强烈建议收藏再慢慢看 Py2 VS Py3 Py2 和 Py3 的差别 print 成为了函数 python2 是关键字 不再有 unicode 对象 默认 str 就是 unicode python3 除号返回浮点数 没有了long类型
  • 波士顿房价预测(终版讲解)

    代码段分四个部分 库的引入 加载数据 函数 配置网络结构 类 运行部分 获取数据 创建网络 启动训练 作图 我的是基础版 库只用到了numpy和matplotlib的pyplto两个 加载数据需要进行将数据作为数组输入 重整成14 N的二维
  • Mybatis PageHelper(MyBatis 分页插件 )的使用

    概述 如果你也在用 MyBatis 建议尝试该分页插件 这一定是最方便使用的分页插件 分页插件支持任何复杂的单表 多表分页 我们在项目中使用sql的手动分页太常见了 如果前台需要分页信息的话 一般我们是需要2条slq语句 一条是查询总页数c
  • leetcode刷题-代码训练营-第3章-哈希表

    目录 242 有效的字母异位词 349 两个数组的交集 202 快乐数 1 两数之和 454 四数相加II 383 赎金信 1 暴力解法 2 哈希表解法 15 三数之和 1 哈希解法 2 双指针法 18 四数之和 242 有效的字母异位词
  • Java 微服务框架选型(Dubbo 和 Spring Cloud?)

    微服务 Microservices 是一种架构风格 一个大型复杂软件应用由一个或多个微服务组成 系统中的各个微服务可被独立部署 各个微服务之间是松耦合的 每个微服务仅关注于完成一件任务并很好地完成该任务 在所有情况下 每个任务代表着一个小的
  • 【常见错误】FPGA器件DDR类型选择错误

    ZedBoard开发常见错误 DDR的型号配置错误 间接会导致的结果是 在调试debug时 会发现cpu一直处于running的状态 但是在控制台并不能看到打印的信息 并且不管是只用了PS端或者是PS PL端都用了 都不能在控制台上出现打印
  • 短信验证码

    短信验证码用的是阿里云的 目录结构如下 其中aliyunsdkdysmsapi是在官方下载的 https help aliyun com document detail 55359 html aliyun py coding utf 8 i
  • 注入技术--LSP劫持注入

    1 原理 简单来说 LSP就是一个dll程序 应用程序通过winsock2进行网络通信时 会调用ws2 32 dll的导出函数 如connect accept等 而后端通过LSP实现这些函数的底层 简单来说就是调用winsock2提供的函数
  • 硬件系统工程师宝典(13)-----PCB的布局“有讲究”

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们说到EMC的标准以及提高EMC性能的一些常用方法 今天我们来看看PCB上模块的布局有什么讲究 模块划分及布局 PCB上模块的划分和布局会影响到布
  • Linux  root密码忘记了,怎么办?

    Linux root用户密码忘记了 怎么办 一 清除密码 首先 启动Linux 出现这个画面 有的版本不一定 和这个 一样但是大同小异 注意这句话就行 Press any key to enter the menu 按任意键进入菜单 然后
  • Cocos2d-x Js Binding 的手动绑定实现

    http www ityran com archives 4902 Cocos2d x Js Binding 的手动绑定实现 一叶 cocos2d x 08 13 2304 4条评论 随着 Cocos2d x 的发展 Cocos2d htm
  • Command ‘roscore‘ not found, but can be installed with: sudo apt install python-roslaunch

    ubuntu18 04安装ros melodic时报错 解决方法 查看是否安装包 cd opt ros melodic bin ls 发现没有roscore 安装 在bin目录 sudo apt get install ros melodi
  • NGINX指定启动的配置文件

    若不指定安装路径 nginx默认安装在 usr local nginx路径下 若不指定nginx的配置文件 nginx默认启动找的是同级nginx更路径下的 conf nginx conf配置文件 但该配置文件的所在路径 以及文件名不是绝对
  • git revert后无法merge发生的惨案

    git revert后无法merge发生的惨案 前景描述 目前公司开发模式是这样的 有测试分支test 开发分支dev1 dev2 dev3 dev1 dev2 dev3都是基于test分支拉出来的 各分支如果没有问题后都会合并到test
  • c# postgresql帮助类

    1 安装Npgsql 2 代码