ADO.NET操作PostgreSQL:数据库操作类(未封装)
1.添加
/// <summary>
/// 添加
/// </summary>
/// <param name="newEntity"></param>
/// <returns></returns>
public static int Insert(Person newEntity)
{
string sql = @"insert into ""Person"" (""PersonId"",""IdCard"",""RealName"",""Gender"",""Address"") values (@PersonId,@IdCard,@RealName,@Gender,@Address)";
using (NpgsqlConnection conn = new NpgsqlConnection(postgresqlconn.connectionString))
{
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
{
#region MyRegion
cmd.Parameters.Add("@PersonId", NpgsqlDbType.Integer).Value = newEntity.PersonId;
cmd.Parameters.Add("@IdCard", NpgsqlDbType.Varchar).Value = newEntity.IdCard ?? (object)DBNull.Value;
cmd.Parameters.Add("@RealName", NpgsqlDbType.Varchar).Value = newEntity.RealName ?? (object)DBNull.Value;
cmd.Parameters.Add("@Gender", NpgsqlDbType.Bit).Value = newEntity.Gender;
cmd.Parameters.Add("@Address", NpgsqlDbType.Varchar).Value = newEntity.Address ?? (object)DBNull.Value;
#endregion conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
2.修改
/// <summary>
/// 修改
/// </summary>
/// <param name="newEntity"></param>
/// <returns></returns>
public static int Update(Person newEntity)
{
string sql = @"update ""Person"" set ""IdCard""=@IdCard,""RealName""=@RealName,""Gender""=@Gender,""Address""=@Address where ""PersonId""=@PersonId";
using (NpgsqlConnection conn = new NpgsqlConnection(postgresqlconn.connectionString))
{
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
{
#region MyRegion
cmd.Parameters.Add("@PersonId", NpgsqlDbType.Integer).Value = newEntity.PersonId;
cmd.Parameters.Add("@IdCard", NpgsqlDbType.Varchar).Value = newEntity.IdCard ?? (object)DBNull.Value;
cmd.Parameters.Add("@RealName", NpgsqlDbType.Varchar).Value = newEntity.RealName ?? (object)DBNull.Value;
cmd.Parameters.Add("@Gender", NpgsqlDbType.Bit).Value = newEntity.Gender;
cmd.Parameters.Add("@Address", NpgsqlDbType.Varchar).Value = newEntity.Address ?? (object)DBNull.Value;
#endregion conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
3.删除
/// <summary>
/// 删除
/// </summary>
/// <param name="personId"></param>
/// <returns></returns>
public static int Delete(int personId)
{
string sql = @"delete from ""Person"" where ""PersonId""=@PersonId";
using (NpgsqlConnection conn = new NpgsqlConnection(postgresqlconn.connectionString))
{
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
{
cmd.Parameters.Add("@PersonId", NpgsqlDbType.Integer).Value = personId;
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
4.读取
/// <summary>
/// 读取
/// </summary>
/// <param name="reader"></param>
/// <returns></returns>
private static Person GetByReader(NpgsqlDataReader reader)
{
Person newEntity = new Person();
if (reader != null && !reader.IsClosed)
{
if (reader["PersonId"] != DBNull.Value) newEntity.PersonId = (int)reader["PersonId"];
if (reader["IdCard"] != DBNull.Value) newEntity.IdCard = (string)reader["IdCard"];
if (reader["RealName"] != DBNull.Value) newEntity.RealName = (string)reader["RealName"];
if (reader["Gender"] != DBNull.Value) newEntity.Gender = (bool)reader["Gender"];
if (reader["Address"] != DBNull.Value) newEntity.Address = (string)reader["Address"];
}
return newEntity;
}
5.查询1行
/// <summary>
/// 查询1行
/// </summary>
/// <param name="personId"></param>
/// <returns></returns>
public static Person GetEntity(int personId)
{
Person entity = null;
string sql = @"select * from ""Person"" where ""PersonId""=@PersonId";
using (NpgsqlConnection conn = new NpgsqlConnection(postgresqlconn.connectionString))
{
using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
{
cmd.Parameters.Add("@PersonId", NpgsqlDbType.Integer).Value = personId;
conn.Open();
using (NpgsqlDataReader sr = cmd.ExecuteReader())
{
if (sr != null)
{
while (sr.Read())
{
entity = GetByReader(sr);
}
}
}
}
}
return entity;
}
ADO.NET操作PostgreSQL:数据库操作类(未封装)的更多相关文章
- ado.net的简单数据库操作(一)
摘要:接下来的几篇博客将要讲到如何使用ado.net实现简单的数据库操作,包括增删改等内容.首先会介绍基础的数据库操作,然后以一个实例来进行讲解,这个实例会把一个数据表读取到winform上,然后在w ...
- Redis操作,数据库操作
Redis操作,数据库操作 案例1:源码安装Redis缓存服务 案例2:常用Redis数据库操作指令 案例3:配置Redis主从服务器 1 案例1:源码安装Redis缓存服务 1.1 问题 本案例要求 ...
- ado.net的简单数据库操作(二)之封装SqlHelperl类
今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...
- ado.net的简单数据库操作(三)——简单增删改查的实际应用
果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...
- hibernate 操作 Postgresql 数据库报 operator does not exist: integer = character varying
网上的说法如下: Java开发Postgresql 数据库兼容应用的问题,与Oracle有一些不同: Java类型映射数据库类型的不同,Oracle jdbc驱动程序处理Java String类型可正 ...
- C#/Python/MATLAB操作PostgreSQL数据库
PostgreSQL数据库是一个功能非常强大的开源数据库,支持多种SQL特性,非常好用.此外由于结合PostGIS可以实现空间数据库功能,故非常适合GIS领域的使用.本文旨在介绍C#.Python.M ...
- Python 操作 PostgreSQL 数据库
我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg ...
- 使用JdbcTemplate简化JDBC操作 实现数据库操作
使用Spring JDBC框架方遍简单的完成JDBC操作,满足性能的需求且灵活性高. Spring JDBC框架由4个部分组成,即core.datasource.object.support. org ...
- 操作redis数据库 & 操作Excel & 开发接口
操作redis数据库: string类型 1. 增 set,传俩个参数 key value(只要是字符串就行)2. 删 delete 传一个参数 key3. 修改 set 在目标key重新传参 key ...
- Hive命令行经常使用操作(数据库操作,表操作)
数据库操作 查看全部的数据库 hive> show databases ; 使用数据库default hive> use default; 查看数据库信息 hive > descri ...
随机推荐
- 第4课 Hello QT
1. QT的安装 (1)双击:qt-opensource-windows-x86-mingw492-5.6.0.exe (2)安装过程中指定QT Creator安装目录下的mingw文件夹 (3)设置 ...
- yum安装nagois
多少年前就装过了,今天再来用yum装一次,都忘干净了~~ 主监控机:CentOS 6.5 192.168.0.105被监控机:CentOS 6.5 192.168.0.107 主监控机设置:1.安装e ...
- java高并发总结-常用于面试复习
定义: 独占锁是一种悲观保守的加锁策略,它避免了读/读冲突,如果某个只读线程获取锁,则其他读线程都只能等待,这种情况下就限制了不必要的并发性,因为读操作并不会影响数据的一致性. 共享锁则是一种乐观锁, ...
- How To Manually Install Oracle Java on Ubuntu
Introduction Java is a programming technology originally developed by Sun Microsystems and later acq ...
- AndroidStudio 中怎样查看获取MD5和SHA1值(应用签名)
曾经在Eclipse中我们获取MD5和SHA1非常easy就找到了例如以下图所看到的: 就能够在Eclipse中看到所须要调试的MD5和SHA1.可是在AndroidStudio中我找了一圈也没有发现 ...
- springboot 中 集成druid ,redis
1,导入druid jar包 <!--引入drud--> <dependency> <groupId>com.alibaba</groupId> < ...
- 搭建https+nginx服务器
搭建https+nginx的服务器,主要是安装ngnix和使用openssl生成自签证书,并在nginx中配置的过程 一.安装环境 1.安装opnssl(ssl支持) https://www.op ...
- 119. Pascal's Triangle II (Graph; WFS)
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...
- Marshal.FreeHGlobal 方法 (IntPtr)
释放以前从进程的非托管内存中分配的内存. 命名空间: System.Runtime.InteropServices程序集: mscorlib(位于 mscorlib.dll) 下面的示例演示如何 ...
- Jenkins修改端口号(成功率高)
转载:http://blog.csdn.net/dzh0622/article/details/52470634 Jenkins默认的端口号是8080,修改方法: 1. 打开终端,cd 到Jenkin ...