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. python并发编程之线程剩余内容(线程队列,线程池)及协程

    1. 线程的其他方法 import threading import time from threading import Thread,current_thread def f1(n): time. ...

  2. Android内核编译步骤

    android_4.0.4_tq210$ source build/envsetup.shandroid_4.0.4_tq210$ lunch 5/android_4.0.4_tq210$ make ...

  3. redis--py链接redis【转】

    请给原作者点赞--> 原文链接 一.redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链 ...

  4. POJ 3241 曼哈顿距离最小生成树 Object Clustering

    先上几个资料: 百度文库有详细的分析和证明 cxlove的博客 TopCoder Algorithm Tutorials #include <cstdio> #include <cs ...

  5. Django基于Pycharm开发之一【创建django工程】

    Django的工程结构,可以通过pycharm里面,选择创建django工程来直接创建,也可以通过命令行通过pip来安装. 一.通过命令行安装的步骤 Install Python. Install a ...

  6. 20,序列化模块 json,pickle,shelve

    序列化模块 什么叫序列化? 将原本的字典,列表等内容转换成一个字符串的过程叫做序列化. 序列化的目的? 数据结构 通过序列化 转成 str. str 通过反序列化 转化成数据结构. json: jso ...

  7. java append方法

    JAVA 中 Stringbuffer 有append()方法  Stringbuffer其实是动态字符串数组  append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号  ...

  8. 使用 Button 类在 XNA 中创建图形按钮(九)

    平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...

  9. 使用SpringMVC参数传递时,解决get请求时中文乱码的问题

    问题描述: 使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码. 解决办法: 一,  我们需要把request.getParameter(“参数名”)获取到的字符串先 ...

  10. 鼠标在窗口中的坐标转换到 canvas 中的坐标

        鼠标在窗口中的坐标转换到 canvas 中的坐标 由于需要用到isPointInPath函数,所以必须得将鼠标在窗口中的坐标位置转换到canvas画布中的坐标,今天发现网上这种非常常见的写法其 ...