一.连接Oracle数据库

  1. 安装客户端: oracle数据库搭建在远程服务器上,本地只需要装个客户端,然后在安装目录下(D:\app\fangs\product\12.1.0\client_3\Network\Admin ,不一定是D盘) 配置tnsnames.ora,配置可以参考同目录下的Sample 文件夹中的内容。就是指明连接名,远程ip,servicename/SID。 然后可以利用sql develper工具打开数据库,查看数据库中的所有内容。
  2. c#程序通过ADO.NET连接:  首先创建连接字符串 : string connStr ="DATA SOURCE=***;PASSWORD=***;USER ID=**" ,以及后续的ADO.NET 操作就可以连接上数据库了。
  3. 获取数据:参考 MSDN MSDN ado.net

    I.       建立数据库连接,conn.open()

    II.      创建DataAdapter,这是数据库与DataSet对象之间的连接

    III.     声明并创建一个DataSet对象实例,然后才能开始加载数据,该名称可以包含若干独立的表

    IV.    DataAdapter提供Fill,与FillSchema方法。

    FillSchema方法会加载一些数据表信息,列名,约束等。

    V.      DataSet中的Tables集合内独立的DataTable对象来提供数据

    VI.    DataTables.Row可以访问每一行

二 C#中的数据类型与 Oracle 数据库字段类型对应关系

参考此篇文章

特别注意的是oracle数据库中 Number(10,1)这种类型的就可以用decimal

三.sql

1.一 中需要进行sql的传入,所以这里讲下sql 字符串的写法。

  1. string sql=@"";:@:C#中特殊的字符串声明方式,叫做 “逐字字符串”(verbatim strings),使用这个符号会告诉编译器这是个逐字字符串,它本身常用于写指定文件或目录的路径,因为它会通知编译器将 ’\‘作为文本常量而不是转义字符。在这里使用它是因为 sql语句可能很长,他支持换行写字符串
  2. 传参数给sql : string sql = @"nsert  into A Values(:ID_NUM) 用 :表明这是个变量,这是oracle数据库的表达方式。其他数据库使用其他标示方式,如sqlserver使用@。注意这里的参数名不能使oracle数据库的关键词,否则会报错,显示这个参数名无效 。
  3. sql 语句加 常量:eg. where a>2 ,将2定义为 类 Constants中的一个变量 count 。就可以写成 where a> '" + Constants.count + @"'  一定要注意空格,否则可能识别不出关键词
备注:在c#中写sql语句时,先将sql语句放在sql developer中执行,确保sql语法没有错误,再写到程序中。像上面提到的 传参 用 “:”标记,sql developer中都是可以检查出来的

2.sql 传参格式

数据库中字段定义一般会设定长度,写数值进去的时候一般位数不够,会补齐空格。

当我们执行查询、插入等数据库操作时,如果是直接赋值,oracle数据库会补齐/识别出不够的位数。但是如果使用传参数值的方法,oracle数据库则不会这么做。那么就需要补齐空格,才能判断相等条件。

eg.数据表A 的字段 ID CHAR(5)存储了某值为 A012

你执行 select *from A where ID=:ID

然后 oracleAccess.addParameter(":ID","A012")这样的查询语句是查询到 ID为A012的数据的。应该修改为

select *from A where ID=RPAD(:ID,5),这样会补齐空格的

C#与Oracle数据库的更多相关文章

  1. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  2. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  3. Oracle数据库该如何着手优化一个SQL

    这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先 ...

  4. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  5. Oracle数据库升级(10.2.0.4->11.2.0.4)

    环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzha ...

  6. 混合框架中Oracle数据库的还原处理操作

    在较早期的随笔<Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作>粗略介绍了Oracle数据库的备份还原操作,本文想从开发框架的基础上介绍Oracle数据库的脚本或者还 ...

  7. Oracle数据库的链接数目超标

    测试场景:Oracle数据库的链接数目超标,iServer是否自动连接. 测试步骤:(1)设置了最大连接数为85,oracle后台进程有83:(2)开启3台iserver(A,B,C)A,B发布tes ...

  8. 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...

  9. Oracle数据库11g各版本介绍及功能比较

    .标准版和企 业版.所有这些版本都使用相同的通用代码库构建,这意味着企业的数据库管理软件可以轻松地从规模较小的单一处理器服务器扩展到多处理器服务器集 群,而无需更改一行代码.Oracle数据库11g企 ...

  10. Oracle数据库,数据的增、删、改、查

    oracle数据库中,数据的增.删.改.查,通过SQL语句实现 SQL:结构化查询语言: 特点:不区分大小写:字符串用单引号引起来:语句结束用分号表示结束: 行注释,在语句的最前面加"--& ...

随机推荐

  1. JavaScript正则表达式模式匹配(6)——常用的正则表达式

    1.检查邮政编码 var pattern=/[1-9][0-9]{5}/; // 必须是6位,必须是数字,第一位不能为0 var str='274200'; alert(pattern.test(st ...

  2. 常用java开发文档链接

    使用java开源工具httpClient及jsoup抓取解析网页数据 : https://blog.csdn.net/lovoo/article/details/52674712 jsoup Cook ...

  3. Eclipse创建Maven工程

    Eclipse创建Maven工程: Eclipse: New  -> Other -> Maven Project -> Next -> webapp -> Finish ...

  4. OAuth 2 深入介绍

    1. 前言 2. OAuth2 角色 2.1 资源所有者(Resource Owner) 2.2 资源/授权服务器(Resource/Authorization Server) 2.3 客户端(Cli ...

  5. 20160216.CCPP体系详解(0026天)

    程序片段(01):01.MemCpy.c 内容概要:内存拷贝 #include <stdio.h> #include <stdlib.h> #include <memor ...

  6. 剑指Offer——毕业生求职网站汇总(干货)

    剑指Offer--毕业生求职网站汇总(干货) 致2017即将毕业的你~ 精品网站 牛客网:https://www.nowcoder.com 赛码网:http://www.acmcoder.com/ 招 ...

  7. UE4 读取本地图片

    参考链接:https://answers.unrealengine.com/questions/235086/texture-2d-shows-wrong-colors-from-jpeg-on-ht ...

  8. Java基本语法-----java变量

    1.变量的概述 用于存储可变数据的容器. 2.变量存在的意义 计算机主要用于处理生活中的数据,由于生活中存在大量的可变数据,那么计算机就必须具备存储可变数据的能力. 比如: 1.时间每一秒都在发生变化 ...

  9. hive分组排序 取top N

    pig可以轻松获取TOP n.书上有例子 hive中比较麻烦,没有直接实现的函数,可以写udf实现.还有个比较简单的实现方法: 用row_number,生成排名序列号.然后外部分组后按这个序列号多虑, ...

  10. Android核心安全机制(一)

    Android六种核心安全机制-加密.密钥.签名与证书 对于移动开发,程序猿很容易会忘记一些安全问题,如一个MD5的加密,大部分人都知道怎么去使用,但是其中的一些加密原理,加密方式却只有少部分会去了解 ...