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帮助类的更多相关文章

  1. 一个简单的ORM制作(SQL帮助类)

    一个简单的ORM制作大概需要以下几个类: SQL执行类 CURD操作类 其他酱油类 先从SQL执行类说起,可能会涉及数据库的迁移等问题,所以需要定义一个接口以方便迁移到其他数据库, 事务没提供命名,若 ...

  2. SQL数据类型和C#数据类型间的转换

    今天看到SQL数据类型和C#数据类型间的转换,前人留下的. <?xml version="1.0" encoding="utf-8" ?> < ...

  3. PHP文件上传,下载,Sql工具类!

    PHP文件上传,下载,Sql工具类! 对文件大小,文件类型 同名覆盖 中文转码的操作,可直接使用 前台 upload.html <!DOCTYPE html> <html> & ...

  4. 数据库连接池与SQL工具类

    数据库连接池与SQL工具类 1.数据库连接池 依赖包 pymysql dbutils # -*- coding: utf-8 -*- ''' @Time : 2021/11/19 16:45 @Aut ...

  5. QtSQL学习笔记(4)- 使用SQL Model类

    除了QSqlQuery,Qt提供了3个高级类用于访问数据库.这些类是QSqlQueryModel.QSqlTableModel和QSqlRelationalTableModel. 这些类是由QAbst ...

  6. SQL语言类

     SQL语分为四类:数据查询语言DQL,数据操纵语言DML. 数据定义语言DDL,数据控制语言DCL. 1 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句.FROM子句,WHE ...

  7. java学习笔记37(sql工具类:JDBCUtils)

    在之前的内容中,我们发现,当我们执行一条语句时,每新建一个方法,就要重新连接一次数据库,代码重复率很高,那么能不能把这些重复代码封装成一个类呢,我们学习方法时,就学习到方法就是为了提高代码的利用率,所 ...

  8. QT笔记:数据库总结(三)之SQL模型类-QSqlTableModel模型

    QSqlTableModel类继承至QSqlQueryModel类,该类提供了一个可读写单张SQL表的可编辑数据模型,功能:修改,插入,删除,查询,和排序 常用函数 QVariant headerDa ...

  9. Excel生成Oracle数据库表sql工具类

    1.解决问题: 开发文档中字段比较多的时候,建表sql(Oracle下划线命名规范)比较麻烦,容易出错~~ (主要是懒) 特意手写一个工具,根据excel字段,生成建表的sql语句. ~~~末尾附Gi ...

随机推荐

  1. linux 安装elasticsearch

    一.检测是否已经安装的elasticsearch ps aux|grep elasticsearch. 二.下载elasticsearch.tar.gz并上传至服务器usr/local/文件夹下 三. ...

  2. ProC第二弹

    一.提要 上文简单介绍了Windows下ProC配置开发,这次我们使用Linux平台再次配置Oracle ProC开发环境(RedHat Linux 9 + Oracle 92).    <OR ...

  3. Selenium WebDriver-操作复选框

    #encoding=utf-8 import unittest import time import chardet from selenium import webdriver class Visi ...

  4. Leetcode34--->Search for a Range(在排序数组中找出给定值出现的范围)

    题目:给定一个排序数组,找出给定的target值出现的范围:算法复杂度要求在O(logn);如果没有找到,则返回[-1, -1]; 举例: For example,Given [5, 7, 7, 8, ...

  5. jqery实现一个图标上下滑动效果

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  6. Ubuntu 深度炼丹环境配置

    Ubuntu 深度炼丹环境配置 深度炼丹最麻烦的就是环境配置了,下面过程记录了本人进行深度炼丹环境的配置. 首先是安装图形显卡驱动,按如下指令进行即可 sudo add-apt-repository ...

  7. [python学习篇][书籍学习][python standrad library][内置类型]对象测试真值,布尔值操作, 比较操作

    几乎所有对象都可以比较.测试真值.转换为字符串(其实就是用repr()函数,或略有差异的str()函数来转换) 1 对象是否为真 任何对象都可以测试真值,用于if或while的条件或下面布尔运算的操作 ...

  8. [错误处理]UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

    Stackoverflow 回答: 将byte类型转化:byte_string.decode('utf-8') Jinja2 is using Unicode internally which mea ...

  9. shiro实现app和web统一登录

    (转自:http://www.cnblogs.com/sunshine-2015/p/5515429.html)   先说下背景,项目包含一个管理系统(web)和门户网站(web),还有一个手机APP ...

  10. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...