C#访问ORALCE数据库
随着时间的推移知识也在更新,原来可用的技术也会被淘汰或更新。
framework4.0开始不再支持System.Data.OracleClient了,但是令人欣慰的是ORACLE公司自己出了一个Oracle.ManagedDataAccess链接库。
下载地址:http://files.cnblogs.com/files/weipt/OracleBase.rar
添加引用之后就可以在c#中使用了。
1.连接字符串如下
<connectionStrings>
<add name="ConnectionString" connectionString="server=server;uid=sa;pwd=sa;database=dy_db;"/>
<add name="ConnectionString_Oralce" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.254)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=tdc)));Persist Security Info=True;User ID=tdc;Password=tdc;"/>
</connectionStrings>
不用建立tns监听文件,不用安装庞大的oracle数据库客户端
2.建立公共的数据访问方法
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand(SQLString,connection))
{
try
{
connection.Open();
int rows=cmd.ExecuteNonQuery();
return rows;
}
catch(OracleException E)
{
connection.Close();
throw new Exception(E.Message);
}
}
}
}
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString,params OracleParameter[] cmdParms)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand())
{
try
{
PrepareCommand(cmd, connection, null,SQLString, cmdParms);
int rows=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch(OracleException E)
{
throw new Exception(E.Message);
}
}
}
}
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
OracleDataAdapter command = new OracleDataAdapter(SQLString,connection);
command.Fill(ds,"ds");
}
catch(OracleException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
3.使用时和sqlserver不同的地方
1>如果采用sql字符串查询,那么查询语句要遵循ORACLE标准,日期格式要用
to_date('2017-05-24 12:12:12','yyyy-mm-dd hh24:mi:ss')
2>不支持top关键字等关键字
3>如果用传参执行的化,不用转换日期格式,但是不是@了,而是:冒号
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(OMaticsoft.Model.MDEVICECRUNTIME model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update DEVICECRUNTIME set ");
strSql.Append("PARAVALUE=:PARAVALUE,");
strSql.Append("RECEIVETIME=:RECEIVETIME");
strSql.Append(" where DEVICEID=:DEVICEID and RESNAME=:RESNAME");
OracleParameter[] parameters = {
new OracleParameter("PARAVALUE", OracleDbType.NVarchar2,),
new OracleParameter("RECEIVETIME", OracleDbType.Date),
new OracleParameter("DEVICEID", OracleDbType.Int32,),
//new OracleParameter("RUMTIMEID", OracleDbType.Long,4),
new OracleParameter("RESNAME", OracleDbType.NVarchar2,)};
parameters[].Value = model.PARAVALUE;
parameters[].Value = model.RECEIVETIME;
parameters[].Value = model.DEVICEID;
//parameters[3].Value = model.RUMTIMEID;
parameters[].Value = model.RESNAME; int rows=DbHelperOra.ExecuteSql(strSql.ToString(),parameters);
if (rows > )
{
return true;
}
else
{
return false;
}
}
C#访问ORALCE数据库的更多相关文章
- linux 环境下部署 Asp.Net Core 项目 访问 oralce 数据库
1.ASP.NET Core 是一个跨平台的高性能开源框架,可以部署到Linux上,那项目部署在Linux上有哪些好处呢? 1.linux硬件需求小,大部分版本免费,成本低. 2.linux的用户管理 ...
- Oralce数据库的优化
Oralce数据库的优化(面试必问) (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 ...
- Qt5 开发 iOS 应用之访问 SQLite 数据库
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...
- java文件来演示如何访问MySQL数据库
java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...
- 如何配置网络使得宿主机能够访问VM数据库?
https://www.zhihu.com/question/23955166 背景:公司内外网区分,不能同时上,局域网内得手动切换两个网络,分别访问外网或者内网,ip是动态获取的.现在本机上装有vm ...
- .net(C#)访问Oracle数据库的几种免安装组件的对比
Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件.它们用来存取Oracle关系数据库系统.与BDE类似, OD ...
- PHP访问MySql数据库介绍
在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...
- VS2010添加类失败问题,弹出错误框,提示 CodeModel操作失败,无法访问标记数据库
我在使用VS2010添加类的时候,会弹出一个错误框,提示 CodeModel操作失败,可以无法访问标记数据库 英文版是 CodeModel operation failed,Possibly cann ...
- C#访问postgresql数据库
最近开始做C#的DotNet的工作,因为对PostgreSQL数据库比较有兴趣,所以自己研究了一下如何访问PostgreSQL的 数据库的问题. 1.为了访问PostgreSQL数据库,需要从pgfo ...
随机推荐
- windows升级到1607后操作很卡顿的解决办法
CPU I5,固态128G,win7主系统,WIN10和WIN7都安装在固态硬盘上. 未升级之前,操作很流畅,以至于把家里的老古董电脑也换固态,系统换WIN10了.自从升级了1607后这个问题就出现了 ...
- MySQL之字符集-校对规则
一.字符集(Character set) 是多个字符(英文字符,汉字字符,或者其他国家语言字符)的集合,字符集种类较多,每个字符集包含的字符个数不同. 特点: ①字符编码方式是用一个或多个字节表示字符 ...
- webpack 打包成功,但是css不起作用
问题: webpack 打包成功,但是css不起作用 问题分析/解决: 原因有以下几种 使用了webpack2的语法规则不正确; webpack2要求必须写-loader; 可能是只写了css-loa ...
- JDBC的使用流程
//导入包: import java.sql.*; //注册JDBC驱动程序: Class.forName("com.mysql.jdbc.Driver"); //打开一个连接: ...
- spring mvc中,直接注入的HttpServletRequst是否安全呢?
看似很简单的一个问题,借此追踪下spring的源码处理 在写springMVC的Control中有很多这种代码, 如需要获取request对象去做某些事情 如: @Controller @Reques ...
- 【转载】google搜索从入门到精通
原文地址:http://www.cnblogs.com/helloIT/articles/5095668.html /***************************************** ...
- 关于Java中String类的hashCode方法
首先来看一下String中hashCode方法的实现源码 public int hashCode() { int h = hash; if (h == 0 && value.lengt ...
- Less和Sass的使用
[Less中的变量] 1.声明变量:@变量名:变量值; 使用变量:@变量名 @length:100px; @color:yellow; @opa:0.5; >>>Less中变量的类 ...
- 发送验证码(××s后重新发送)
html: <input class="tel" type="text" name="tel" placeholder="手 ...
- 纯css实现翻牌特效
大家有没有看到过网上很炫的翻牌效果,牌正面对着我们,然后点击一下,牌就被翻过来了,效果很酷炫,是不是很想知道是怎么实现的么,代码很简单,跟着小编往下走. 先给大家介绍一下翻牌的原理: 1.父容器设置设 ...