C# SQL帮助类
C# SQL帮助类
本人自己封装的SQLHelper类,执行sql server与Oracle数据的增删改查
vs自带的Oracle数据库引用需要安装Oracle客户端,如不想安装Oracle客户端,可以引用 Oracle.ManagedDataAccess.dll
下载链接: https://pan.baidu.com/s/1dzzTxL2fmUPrMy2Qc246jg 提取码: 16my
public class SQLHelper
{
/// <summary>
/// 执行查询语句
/// </summary>
/// <param name="ConnStr">连接字符串</param>
/// <param name="Sql">sql语句</param>
/// <param name="Param">查询的字段名</param>
/// <returns>查询结果或错误信息</returns>
public static string[] ExecuteReaderSql(string ConnStr,string Sql,string[] Param)
{
string[] info = new string[Param.Count()];
SqlConnection conn = null;
try
{
conn = new SqlConnection(ConnStr);
conn.Open();
SqlCommand cmd = new SqlCommand(Sql, conn);
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
if (!sdr.HasRows) { info[] = "null"; return info; }
for (int i = ; i <Param.Count(); i++)
{
info[i] = sdr[Param[i]].ToString();
}
}
catch(Exception ex)
{
info[] = "sql查询错误信息:" + ex.Message;
return info;
}
finally
{
conn.Close();
} return info;
}
/// <summary>
/// 执行增删改
/// </summary>
/// <param name="ConnStr">连接字符串</param>
/// <param name="Sql">sql语句</param>
/// <returns>受影响的行数或错误信息</returns>
public static string ExecuteSql(string ConnStr,string Sql)
{
SqlConnection conn = null;
int Row = ;
try
{
conn = new SqlConnection(ConnStr);
conn.Open();
SqlCommand cmd = new SqlCommand(Sql,conn);
Row = cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
return "sql执行错误信息:" + ex.Message;
}
finally
{
conn.Close();
}
return Row.ToString();
}
/// <summary>
/// Oracle增删改
/// </summary>
/// <param name="ConnStr">连接字符串</param>
/// <param name="orcl">Oracle语句</param>
/// <returns>受影响行数或错误信息</returns>
public static string ExecuteOrcl(string ConnStr, string orcl)
{
OracleConnection conn = null;
int Row = ;
try
{
conn = new OracleConnection(ConnStr);
conn.Open();
OracleCommand cmd = new OracleCommand(orcl, conn);
Row = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
return "orcl执行错误信息:" + ex.Message;
}
finally
{
conn.Close();
}
return Row.ToString();
}
/// <summary>
/// Oracle查询
/// </summary>
/// <param name="ConnStr">连接字符串</param>
/// <param name="orcl">Oracle语句</param>
/// <param name="Param">查询字段名</param>
/// <returns>查询结果或错误信息</returns>
public static string[] ExecuteReaderOrcl(string ConnStr, string orcl, string[] Param)
{
OracleConnection conn = null;
string[] info = new string[Param.Count()];
try
{
conn = new OracleConnection(ConnStr);
conn.Open();
OracleCommand cmd = new OracleCommand(orcl, conn);
OracleDataReader odr = cmd.ExecuteReader();
odr.Read();
if(!odr.HasRows) { info[] = "null"; return info; }
for (int i = ; i < Param.Count(); i++)
{
info[i] = odr[Param[i]].ToString();
}
}
catch (Exception ex)
{
info[] = "orcl查询错误信息:" + ex.Message;
return info;
}
finally
{
conn.Close();
}
return info;
}
}
SqlHelper
C# SQL帮助类的更多相关文章
- 一个简单的ORM制作(SQL帮助类)
一个简单的ORM制作大概需要以下几个类: SQL执行类 CURD操作类 其他酱油类 先从SQL执行类说起,可能会涉及数据库的迁移等问题,所以需要定义一个接口以方便迁移到其他数据库, 事务没提供命名,若 ...
- SQL数据类型和C#数据类型间的转换
今天看到SQL数据类型和C#数据类型间的转换,前人留下的. <?xml version="1.0" encoding="utf-8" ?> < ...
- PHP文件上传,下载,Sql工具类!
PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用 前台 upload.html <!DOCTYPE html> <html> & ...
- 数据库连接池与SQL工具类
数据库连接池与SQL工具类 1.数据库连接池 依赖包 pymysql dbutils # -*- coding: utf-8 -*- ''' @Time : 2021/11/19 16:45 @Aut ...
- QtSQL学习笔记(4)- 使用SQL Model类
除了QSqlQuery,Qt提供了3个高级类用于访问数据库.这些类是QSqlQueryModel.QSqlTableModel和QSqlRelationalTableModel. 这些类是由QAbst ...
- SQL语言类
SQL语分为四类:数据查询语言DQL,数据操纵语言DML. 数据定义语言DDL,数据控制语言DCL. 1 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句.FROM子句,WHE ...
- java学习笔记37(sql工具类:JDBCUtils)
在之前的内容中,我们发现,当我们执行一条语句时,每新建一个方法,就要重新连接一次数据库,代码重复率很高,那么能不能把这些重复代码封装成一个类呢,我们学习方法时,就学习到方法就是为了提高代码的利用率,所 ...
- QT笔记:数据库总结(三)之SQL模型类-QSqlTableModel模型
QSqlTableModel类继承至QSqlQueryModel类,该类提供了一个可读写单张SQL表的可编辑数据模型,功能:修改,插入,删除,查询,和排序 常用函数 QVariant headerDa ...
- Excel生成Oracle数据库表sql工具类
1.解决问题: 开发文档中字段比较多的时候,建表sql(Oracle下划线命名规范)比较麻烦,容易出错~~ (主要是懒) 特意手写一个工具,根据excel字段,生成建表的sql语句. ~~~末尾附Gi ...
随机推荐
- python并发编程之进程1(守护进程,进程锁,进程队列)
进程的其他方法 P = Process(target=f,) P.Pid 查看进程号 查看进程的名字p.name P.is_alive() 返回一个true或者False P.terminate( ...
- 求数组中两两相加等于20的组合(Python实现)
题目 求数组中两两相加等于20的组合. 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20. 解析 分为两个步骤: 先采用堆排 ...
- selenium2 TestNG参数化
想要参数化,首先要加入@Parameters({"参数1","参数2"}) package com.demo.test; import java.util.co ...
- SpringBoot接收前端参数的三种方法
都是以前的笔记了,有时间就整理出来了,SpringBoot接收前端参数的三种方法,首先第一种代码: @RestController public class ControllerTest { //访问 ...
- [python xml 学习篇][0]
tree = ET.parse("Result.xml")root = tree.getroot()print type(root)print root.tag # 得到root ...
- Educational Codeforces Round 20 B. Distances to Zero
B. Distances to Zero time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- 指定特殊的安装目录用configure进行配置
linux - Make install, but not to default directories? - Stack Overflow I want to run 'make install' ...
- ABP介绍
ABP是ASP.NET Boilerplate Project (ASP.NET样板项目)的简称. ABP 适用的场景:中小规模 WEB 应用开发,可直接使用 ABP 框架. 较大型项目可以在 ABP ...
- POJ 1953 World Cup Noise
World Cup Noise Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14397 Accepted: 7129 ...
- Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) A. The King's Race
http://codeforces.com/contest/1075/problem/A On a chessboard with a width of nn and a height of nn, ...