动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.加速PL/SQL过程.
.新手浅谈数据库中的设计技巧(一).
.整理Oracle数据库碎片.
.Oracle性能究极优化.
.通过意向锁多粒度封锁机制进行并.
.ORACLE 热备份脚本.
.ORACLE问题,每天10问(十一).
.2Gb or Not 2Gb.
.简析Oracle数据库最大可用性体系.
.关系型数据库:定义数据库表格之.
.Oracle 全球解答的最hot的21个问.
.Oracle Database 10g:改善的表空.
.Oracle 8 的函数介绍.
.创建 ext3 文件系统的步骤(摘)-.
.在 .NET中使用Oracle数据库事务.
.Oracle数据库的备份与恢复.
.在Oracle中查看各个表、表空间占.
.Oracle中建立索引并强制优化器使.
.关于Oracle的虚拟专有数据库特性.
.带你深入了解Oracle数据库的进制.

用ODP.NET执行SQL读取数据库记录的方法

发表日期:2008-2-9 |



  本文我们通过一个Oracle提供的示例来讲解利用利用ODP.NET 执行SQL语句访问数据库时设置参数。
  首先创建一个C#应用程序,为了简单和方便可以创建一个控制台程序。
  然后第一件事是添加对Oracle ODP.NET的引用。打开项目的解决方案治理页,然后在引用目录上点右键并选择添加引用菜单。选择ORACLE_HOME\bin\Oracle.DataAccesss.dll。
  为了能够使用ODP.NET 我们在程序前应该引入相关的命名空间。
  using Oracle.DataAccess.Client;
  using Oracle.DataAccess.Types;
  
  首先需要建立到数据库的连接,在上一文章中已经讲过这方面的基本知识。
  
  接下来的工作是建立表,SQL语句为:CREATE TABLE multimedia_tab(thekey NUMBER(4) PRIMARY KEY, story CLOB, sound BLOB)
  
  然后插入一条记录进行测试,SQL语句为:INSERT INTO multimedia_tab values(1,'This is a long story. Once upon a time ...','656667686970717273747576777879808182838485')
  
  建表和插入记录都使用OracleCommand 对象的 ExecuteNonQuery方法来执行SQL 语句。
  
  在ODP.NET 中使用参数的方法为:
  ◎通过SQL语句创建一个OracleCommand,在SQL语句中参数使用:1,:2来代替,分别表示第一个,第二个参数。
  ◎在OracleCommand对象中添加参数。
  ◎设置参数的值。
  ◎调用OracleCommand的ExecuteNonQuery执行SQL语句。
  ◎从参数对象中得到返回的值。
  
  下面是代码:
  // 创建OracleCommand 对象
  OracleCommand cmd = new OracleCommand(
    "begin select story into :1 from multimedia_tab where thekey = 1; end;");
  cmd.Connection = con;
  
  //把命令类型设置为Text,表示执行SQL语句
  cmd.CommandType = CommandType.Text;
  
  // 添加参数,第一个参数表示参数名称,第二个参数表示参数类型,
  OracleParameter param = cmd.Parameters.Add("clobdata",
    OracleDBType.Clob);
  
  // 设置参数为输出类型,假如是输入参数则设置为:ParameterDirection.InputOutput
  param.Direction = ParameterDirection.Output;
  
  // Execute command
  try
  {
    // 执行SQL语句
    // 假如是输入参数,那么这时SQL中的:1 被替换为OracleParameter param 对象所代表的值
    cmd.ExecuteNonQuery();
    // 因为参数是输出参数,所以可以通过得到参数的值来获取SQL语句中参数所表示的值
    string lob_data = (string) ((OracleClob)(cmd.Parameters[0].Value)).Value;
  
    // 显示结果
    Console.WriteLine("Data is: " + lob_data);
  }
  catch (Exception e)
  {
    Console.WriteLine(e.Message);
  }
  
  在执行设置了参数的SQL语句时可以使用ExecuteReader 、ExecuteNonQuery 、ExecuteScalar 来执行SQL语句。
  
  参数的类型可以为:InputOutput、Output、ReturnValue 。
  
  
  在ODP.NET中还有一项功能,就是利用数组绑定到参数上来一次性插入多个记录,这里讲一下多个记录同时插入时如何绑定一个数组到参数上。
  
  // 设置数组
  int[] myArrayDeptNo = new int[3]{10, 20, 30};
  
  // 创建OracleCommand 对象
  cmd.CommandText = "insert into dept(deptno) values (:deptno)";
  // 设置数组大小
  cmd.ArrayBindCount = 3;
  
  // 创建参数
  OracleParameter prm = new OracleParameter("deptno", OracleDbType.Int32);

  prm.Direction = ParameterDirection.Input;
  prm.Value   = myArrayDeptNo;
  
  // 添加参数到OracleCommand对象中
  cmd.Parameters.Add(prm);
  
  // 执行,这时候有三条记录被插入
  cmd.ExecuteNonQuery();
  
  
  2003-11-17 14:34:01otn 对内容进行了修改
  ------------------------签----名----
  $-)
    movb  $0x88,%ah
    int  $0x15
    movw  %ax,(02)
    movw  $SYSSEG, %ax
上一篇:PL/SQL的异常处理机制的初步探讨 人气:508
下一篇:Oracle中的处理CLOB字段的动态PL/SQL 人气:538
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-7 站长中国企业(公司)网站系统 v4.2
2008-9-7 PBDigg v2.0 Build 20080821
2008-9-7 玩玩小游戏FLASH系统 v2.1
2008-9-7 522QQ在线电视直播程序 v1.1
2008-9-7 Pcook cms 文章管理系统 (老Y CM
2008-9-7 仿代码小说小偷系统 v1.0
2008-9-7 百度一搜集成搜索管理系统
2008-9-7 小贤统计器 v1.0
2008-9-7 UCenter Home-中秋搏饼插件 v1.2
2008-9-7 iBlacklist通话黑名单汉化破解补
2008-9-7 EndlessWalls无尽壁纸 v1.0.4破解
2008-9-7 Dynolicious车载测量仪v1.1破解版
2008-9-7 iVoodoo巫毒娃娃1.0.1破解版
2008-9-7 iWallpape精品墙纸1.2破解版
2008-9-7 iChillout自然音效工具1.1破解版
2008-9-7 Todo计划提醒1.2破解版
2008-9-7 allRadio电台集合1.01破解版
2008-9-7 My Money个人理财1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号