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 ...
随机推荐
- Persona5
65536K Persona5 is a famous video game. In the game, you are going to build relationship with your ...
- STVP烧录教程
可以运行独立的烧录软件ST Visual Programmer (STVP)进行STM8芯片烧录.运行“开始”->ST Toolset->Development Tools -> S ...
- Android的初步探索之Context类
最近一直在学安卓,但由于JAVA的能力有限,学起应用开发来很吃力,众多错综复杂的类和界面组件弄的人焦头烂额,往往不知从何下手.... 各种名字冗长的方法和常量,没有任何界面编程的经验真是蛋疼死了.总是 ...
- python基础学习笔记——网络编程(协议篇)
一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...
- 如何用treap写luogu P3391
treap大法好!!! splay什么的都是异端 --XZZ 先%FHQ为敬 (fhq)treap也是可以搞区间翻转的 每次把它成(1~L-1)(L~R)(R+1~n)三块然后打标记拼回去 对于有标记 ...
- Jmeter生成8位不重复的随机数
jmeter的time函数${__time(,)} : 默认该公式精确到毫秒级别, 13位数 ${__time(/1000,)} : 该公式精确到秒级别, 10位数 ${__time(yyyy- ...
- 零基础学习 Python 之数字与运算
写在之前 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的 Python 写起,然后再慢慢涉及到高阶以及具体应用方面.我是完全自学的 Python,所以很是明白自学对于一个人的考验, ...
- 牛客网数据库SQL实战
查找最晚入职员工的所有信息 CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_ ...
- ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined)
靠这把上了蓝 A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 megabyte ...
- “玲珑杯”线上赛 Round #17 河南专场
闲来无事呆在寝室打打题,没有想到还有中奖这种操作,超开心的 玲珑杯”线上赛 Round #17 河南专场 Start Time:2017-06-24 12:00:00 End Time:2017-06 ...