ASP.NET访问Oracle数据库 执行SQL语句过程
来源:互联网 发布:淘宝开学季时间 编辑:程序博客网 时间:2024/04/29 19:26
ASP.NET访问Oracle数据库 执行SQL语句过程
【转】 http://hi.baidu.com/jialinniao/blog/item/f1e2d659ecc47389800a1880.html
Web服务器的配置:
1.安装Oracle 客户端
参考《Oracle 9i & PLSQL 全简体中文版数据库安装过程(图解)》,在选择安装的时候仅安装客户端即可
2.为安装客户端的服务器配置Net 服务
参考 《Oracle 9i/10g 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程》
3.新建一个用户,并赋予OBA角色
1.通过PL SQL 建立用户
使用SysDBA系统用户登陆 PLSQL ,建立一个用户
Web服务器的配置:
1.安装Oracle 客户端
参考《Oracle 9i & PLSQL 全简体中文版数据库安装过程(图解)》,在选择安装的时候仅安装客户端即可
2.为安装客户端的服务器配置Net 服务
参考 《Oracle 9i/10g 数据库 创建数据库 Net 配置 创建表 SQL查询 创建存储过程》
3.新建一个用户,并赋予OBA角色
1.通过PL SQL 建立用户
使用SysDBA系统用户登陆 PLSQL ,建立一个用户
赋给此用户OBA角色。
2.通过Enterprise Manager Console 建立用户
4.测试确认存储过程是正常的
可以右键点击存储过程,选择测试,看是否能够达到预期的效果
ASP.NET访问Oracle 的简单例子
1.为灵活设置,将连接字符写在web.config文件中
2.为Web 应用程序 添加 System.Data.OracleClient 程序集引用
3.下面是测试的程序,aspx 文件代码如下
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AspNetOra._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>
调用一个Oracle连接并执行一条语句测试是否成功<asp:Label ID="Label1" runat="server" ForeColor="Red" Text=""></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="测试连接是否成功" />
</p>
<p>
调用给SQL语句执行绑定<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<br />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="返回数据集合,绑定Gridview" />
</p>
<p>
输入输出参数的存储过程调用<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button3" runat="server" Text="z输入输出参数的存储过程" OnClick="Button3_Click" />
</p>
<p>
执行返回数据集的Oracle存储过程<br />
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
<asp:Button ID="Button4" runat="server" Text="执行存储过程返回数据集" OnClick="Button4_Click" />
</p>
</div>
</form>
</body>
</html>
aspx.cs 文件代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.OracleClient;
namespace AspNetOra
{
public partial class _Default : System.Web.UI.Page
{
System.Data.OracleClient.OracleConnection objConn; //声明一个OracleConnection对象
System.Data.OracleClient.OracleCommand objCmd; //声明一个OracleCommand对象
string strcon = System.Configuration.ConfigurationManager.AppSettings["oracleconn"]; //从Web.config 文件里调用数据库连接字符串
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 测试连接
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
try
{
objConn = new OracleConnection(strcon); //用连接字符串,实例化连接对象
objConn.Open(); //打开数据库连接
string strSQL = "select * from sys.test1"; //查询sys建立的test1表的内容 因为我现在用的登录用户不是sys了
objCmd = new OracleCommand(strSQL, objConn); //用命令和连接对象建立命令实例
objCmd.ExecuteNonQuery();
objConn.Close();
this.Label1.Text = "成功";
}
catch
{
this.Label1.Text = "失败";
}
}
/// <summary>
/// 执行SQL 语句返回数据集合
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
objConn = new OracleConnection(strcon); //用连接字符串,实例化连接对象
objConn.Open(); //打开数据库连接
System.Data.OracleClient.OracleDataAdapter adapter = new OracleDataAdapter("select * from sys.test1", objConn);
System.Data.DataSet ds = new System.Data.DataSet();
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
/// <summary>
/// 存储过程输入、输出参数
///
/// 存储过程定义如下:
///
/// create or replace procedure getName(name_out out varchar2 ,id_in in varchar2) is
/// begin
/// select NAME into name_out from test1 where id = id_in;
/// end getName;
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button3_Click(object sender, EventArgs e)
{
objConn = new OracleConnection(strcon); //用连接字符串,实例化连接对象
objConn.Open(); //打开数据库连接
OracleCommand cmd = new OracleCommand("getName", objConn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("name_out", OracleType.VarChar, 20); //输出参数,注意名字要与存储过程一致
cmd.Parameters["name_out"].Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add("id_in", OracleType.VarChar, 20); //输入参数,注意名字要与存储过程一致
cmd.Parameters["id_in"].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters["id_in"].Value = "1"; //给输入参数赋值
cmd.ExecuteNonQuery();
this.TextBox1.Text = cmd.Parameters["name_out"].Value.ToString(); //获得输出参数
}
/// <summary>
/// Oracle存储过程并不直接返回记录集,记录集以游标的形式通过参数返回。一个包(Packages可以包含多个存储过程,
/// 访问存储过程时采用“包名.存储过程名”的方式。
/// 存储过程是我上一个随笔写的Test,但是上一个存储过程是用Sys建立的,在这里我又重新用当前用户建立的一个属于这个用户的包
///
/// 包定义如下:
/// 包头:
/// create or replace package test is
/// TYPE MYCURSOR IS REF CURSOR;
/// PROCEDURE GETLIST(cur_OUT OUT MYCURSOR);
/// end test;
///
///
///
/// 包体:
/// create or replace package body test is
/// PROCEDURE GETLIST(cur_OUT OUT MYCURSOR) AS
/// BEGIN
/// OPEN cur_OUT FOR SELECT * FROM test1;
/// END;
/// end test;
///
///
///
///
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button4_Click(object sender, EventArgs e)
{
objConn = new OracleConnection(strcon); //用连接字符串,实例化连接对象
objConn.Open(); //打开数据库连接
OracleCommand cmd = new OracleCommand("test.GETLIST", objConn);
cmd.Parameters.Add("cur_OUT", OracleType.Cursor); //注意这里的类型
cmd.Parameters["cur_OUT"].Direction = System.Data.ParameterDirection.Output;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
OracleDataAdapter da = new OracleDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
da.Fill(ds);
GridView2.DataSource = ds.Tables[0].DefaultView;
GridView2.DataBind();
}
}
}
调用结果如下图:
- ASP.NET访问Oracle数据库 执行SQL语句过程
- Asp.Net访问Oracle 数据库执行SQL语句和调用存储过程
- ORACLE数据库SQL语句的执行过程
- ORACLE数据库SQL语句的执行过程
- Oracle SQL语句执行过程
- Oracle SQL语句执行过程
- asp.net执行SQL语句代码
- asp.net执行sql语句(C#)
- asp.net中直接执行sql语句
- Oracle执行SQL语句的过程
- oracle 中sql 语句的执行过程
- oracle执行sql语句的过程
- Oracle执行SQL语句的过程
- Oracle的sql语句执行过程
- Oracle sql语句执行过程图文分析
- Oracle执行SQL语句的过程
- Oracle执行SQL语句的过程
- Oracle执行SQL语句的过程
- 重命名解密
- 百度搜索的一个特性(在连续搜索时,URL中记录上一个搜索词)
- C++知识积累
- 【原创】“小学生也能”系列之二,控制GPS以及高低为互换操作
- Java程序员面试可能遭遇的30个技术陷阱解析
- ASP.NET访问Oracle数据库 执行SQL语句过程
- disable reboot/shutdown beep (it is a annoy beep)
- 汇总c#.net常用函数和方法集
- svg鼠标响应事件的四种方法(其中两种可支持火狐)
- (C#.NET)Oracle数据库操作类
- 电话号码JS验证
- Nat Probe – NAT Detection Tool
- Linux下minicom的配置和使用方法
- 如何让IIS运行php