OracleHelper与SqlServerHelper
1、OracleHelper
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Oracle.DataAccess.Client; namespace OracleDBDemo
{
public class OracleHelper
{ private static string oracleConnectionStr = ConfigurationManager.ConnectionStrings["OracleConnectionString"].ToString(); public static DataTable ExecuteDataTable(string sql,params OracleParameter[] paramList)
{
using (OracleConnection conn = new OracleConnection(oracleConnectionStr))
{
conn.Open(); using (OracleCommand command = conn.CreateCommand())
{
command.CommandText = sql; command.Parameters.AddRange(paramList); DataTable dt = new DataTable(); OracleDataAdapter adapter = new OracleDataAdapter(command); adapter.Fill(dt); return dt;
}
}
} public static int ExecuteNonQuery(string sql, params OracleParameter[] paramList)
{
using(OracleConnection conn = new OracleConnection(oracleConnectionStr))
{
conn.Open();
using (OracleCommand command = conn.CreateCommand())
{
command.CommandText = sql;
command.Parameters.AddRange(paramList); return command.ExecuteNonQuery();
}
}
} public static object ExecuteScalar(string sql, params OracleParameter[] paramList)
{
using (OracleConnection conn = new OracleConnection(oracleConnectionStr))
{
conn.Open();
using (OracleCommand command = conn.CreateCommand())
{
command.CommandText = sql;
command.Parameters.AddRange(paramList); return command.ExecuteScalar();
}
}
}
}
}
2、SqlServerHelper
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data.Common; namespace OracleDBDemo
{
public class SqlServerHelper
{ private static string sqlConnenctionStr = ConfigurationManager.ConnectionStrings["SqlServerConnectionString"].ToString(); public static DataTable ExecuteDataTable(string sql,params SqlParameter[] paramList)
{
using(SqlConnection conn = new SqlConnection(sqlConnenctionStr))
{
conn.Open(); using(SqlCommand command = conn.CreateCommand())
{
command.CommandText = sql;
command.Parameters.AddRange(paramList); DataTable dt = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter(command); adapter.Fill(dt); return dt;
}
}
} public static int ExecuteNonQuery(string sql, params SqlParameter[] paramList)
{ using (SqlConnection conn = new SqlConnection(sqlConnenctionStr))
{
conn.Open(); using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = sql;
command.Parameters.AddRange(paramList); return command.ExecuteNonQuery();
}
} } public static object ExecuteScalar(string sql, params SqlParameter[] paramList)
{
using (SqlConnection conn = new SqlConnection(sqlConnenctionStr))
{
conn.Open();
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = sql; command.Parameters.AddRange(paramList); object obj = command.ExecuteScalar(); return obj; }
}
} }
}
3、web.config
<connectionStrings>
<add name="SqlServerConnectionString" connectionString="Data Source=.\sql2005;Initial Catalog=Credit;Integrated Security=False;User ID=sa;Password=123456;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient"/>
<add name="OracleConnectionString" connectionString="DATA SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBName)));PASSWORD=a123456;PERSIST SECURITY INFO=True;USER ID=system" providerName="Oracle.DataAccess.Client"/> </connectionStrings>
4、数据测试
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using Oracle.DataAccess.Client; namespace OracleDBDemo
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OracleExecuteNonQuery();
} #region SqlServer private void SqlServerExecuteDataTable()
{
string sql = "select * from Account"; DataTable dt = SqlServerHelper.ExecuteDataTable(sql);
} private void SqlServerExecuteNonQuery()
{
string sql = "insert into Account(AccountName,createtime) values(@name,@time)"; SqlServerHelper.ExecuteNonQuery(sql, new SqlParameter("@name", "你好屌!!!"), new SqlParameter("@time", DateTime.Now));
} private void SqlServerExecuteScalar()
{
string sql = "select max(id) from account where AccountName=@name"; object obj = SqlServerHelper.ExecuteScalar(sql, new SqlParameter("@name", "ff"));
Response.Write(obj.ToString());
} #endregion #region Oracle private void OracleExecuteDataTable()
{
string sql = "select * from AccountInfo"; DataTable dt = OracleHelper.ExecuteDataTable(sql);
} private void OracleExecuteNonQuery()
{
string sql = "insert into AccountInfo(id,AccountInfoName) values(:id,:name)"; OracleHelper.ExecuteNonQuery(sql, new OracleParameter(":id", ),new OracleParameter(":name", "你好屌!!!"));
} private void OracleExecuteScalar()
{
string sql = "select max(id) from account where AccountName=@name"; object obj = SqlServerHelper.ExecuteScalar(sql, new SqlParameter("@name", "ff"));
Response.Write(obj.ToString());
} #endregion
}
}
备注:
/*
* 使用参数化 DbCommand 的一个缺点是需要参数的代码将仅适用于支持相同语法的提供程序。
* OleDb、SqlClient 和 Oracle 提供程序全部使用不同的语法。
* 例如:
* SqlClient 参数语法需要使用“@”作为参数占位符;
* OleDb 参数语法需要使用问号“?”作为参数占位符;
* Oracle 参数语法需要使用“:”作为参数占位符。
*/
OracleHelper与SqlServerHelper的更多相关文章
- 话说C#程序员人手一个ORM
话说C#程序员人手一个ORM,确实没有必要再写ORM了,不过我的ORM并不是新的,是从DBHelper演化过来的,算是DBHelper魔改版. 目前流行的ORM有EF.Dapper.SqlSugar. ...
- OracleHelper类
using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...
- 分享一个oraclehelper
分享一个拿即用的oraclehelper 首先要引用本机中的oralce access,如果是64位的话,也必须是64位运行,不然会报连接为空connection 等于null. using Orac ...
- 丰富自己的代码库-SqlServerHelper(Ado)
设计思路很简单,就是把数据封装为DataTable类,封装了类型转换,使用者可以不必考虑任何类型转换,而使用VC提供的CString即可.封装了按行号查找功能,先看代码 #pragma once #i ...
- OracleHelper数据库事务处理
原理:需要开启事务的Action贴上Transaction标签,则Action执行前开启事务,Action执行完提交事务,如果Action报错,则回滚事务. OracleHelper代码: using ...
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
- 『片段』OracleHelper (支持 多条SQL语句)
C# 调用 Oracle 是如此尴尬 >System.Data.OracleClient.dll —— .Net 自带的 已经 过时作废. >要链接 Oracle 服务器,必须在 本机安装 ...
- OracleHelper
/// <summary> /// OracleServer数据库访问的通用工具类 /// </summary> public abstract class OracleHel ...
- OracleHelper(for produce)
OracleHelper中,有一个用存储过程实现的Insert方法. 然后我把执行存储过程的方法 封装成了可以执行任何存储过程,参数是 存储过程名称 以及存错过程中的传入.传出参数 using Ora ...
随机推荐
- 装CentOS 系统
一. 二. 三. 四. 五. 六. 七. 八. 九. 十. 十一. 十二. 十三. 十四. 十五. 十六. 十七. 十八. setup设置
- Maven Archetype简介以及搭建
为什么会写这篇文章,因为公司先在构建项目骨架都是用的 maven archetype ,身为一个上进的渣渣猿,自己还是有必要了解下这个东西的. Archetype介绍 Archetype 是一个 Ma ...
- Delphi动态添加菜单
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- tomcat 查看和修改内存
为了解决tomcat在大进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式: 一.使用 catalina.bat 等命令行方式运行的 tomcat 查看系统最大支 ...
- Markdown 文件转化为work文档
1. 电脑安装pandoc 链接:https://pan.baidu.com/s/12H5wLO0JWph5TjrbeJI6mg 密码:ssgs 下载安装包解压即可用.记得配置系统环境变量 2.命令行 ...
- SpringBoot+MyBatis多数据源使用分页插件PageHelper
之前只用过单数据源下的分页插件,而且几乎不用配置.一个静态方法就能搞定. PageHelper.startPage(pageNum, pageSize); 后来使用了多数据源(不同的数据库),Page ...
- Bicriterial routing 双调路径 HYSBZ - 1375(分层最短路)
Description 来越多,因此选择最佳路径是很现实的问题.城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用.路径由连续的道路组成.总时间是各条道路旅行时间的和,总费用是各条道路所支 ...
- bzoj 2212 : [Poi2011]Tree Rotations (线段树合并)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2212 思路:用线段树合并求出交换左右儿子之前之后逆序对的数量,如果数量变小则交换. 实现 ...
- startSSL 申请免费的SSL证书
打开网址https://www.startssl.com/?app=12,选择Sign-up注册. 输入个人注册信息 需注意以下几点:(1)地址必须详细,否则你会收到这样的邮件: Please pro ...
- 【BZOJ1823】[JSOI2010]满汉全席(2-sat)
[BZOJ1823][JSOI2010]满汉全席(2-sat) 题面 BZOJ 洛谷 题解 很明显的\(2-sat\)模板题,还不需要输出方案. 对于任意两组限制之间,检查有无同一种石材要用两种不同的 ...