ASP.NET用存储过程执行查询Oracle数据库表操作

从到南京这边做Delphi开发以后,数据库从SqlServer转到Oracle,开发平台从C#转到 Delphi,原来在C#+SqlServer下直接用存储过程select数据库表变成了一件非常难得事,这几天刚刚把前面一个项目做完,终于空下有有时间自己钻研一下,花了我一天时间通过查资料,写小DEMO,终于把这件难题解决了,现在把代码和过程发布出来,希望能给有需要的朋友一点小小的帮助,也请各位多多指教才是!
数据库端:
1.创建包
create   or   replace  package showmessage  is

  
--  Author  : jack.zy
   --  Created : 2008-3-25 12:50:58
   --  Purpose : 
  
  
--  Public type declarations
  type mytype  is  ref  cursor ;
  
  
procedure  myshow(mycur out mytype);
  
end  showmessage;
2.创建包体
create   or   replace  package body showmessage  is

  
--  Author  : jack.zy
   --  Created : 2008-3-25 12:50:58
   --  Purpose : 
   --  Function and procedure implementations
   procedure  myshow(mycur out mytype)
is
begin
  
open  mycur  for   select   *   from  sys_user;
  
end  myshow;

end  showmessage;
C#端,因为做的是Asp.net程序,所以是在页面的page_load事件中写得
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.Data.OracleClient;

public   partial   class  Default2 : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        OracleConnection conn 
= new OracleConnection();//创建一个连接
        conn.ConnectionString = "Data Source=PACIA;User Id=pecgis_ypc_001;Password=sa;Integrated Security=no;";//指定连接字符串
        OracleCommand cmd = new OracleCommand();//创建一个命令
        cmd.Connection = conn;//指定命令连接
        cmd.CommandType = CommandType.StoredProcedure;//指定命令类型
        cmd.CommandText = "showmessage.myshow";//指定当前执行存储过程
        OracleParameter param = new OracleParameter("mycur",OracleType.Cursor);//创建一个连接参数为游标类型
        param.Direction = System.Data.ParameterDirection.Output;//指定当前参数为输出类型
        cmd.Parameters.Add(param);//为命令添加参数
        OracleDataAdapter da = new OracleDataAdapter();//创建适配器
        DataSet ds = new DataSet();//创建数据集
        da.SelectCommand = cmd;//指定当前适配器命令
        da.Fill(ds, "sys_user");//填充数据集

        
this.gvList.DataSource = ds.Tables["sys_user"].DefaultView;//指定数据显示控件目标数据
        this.gvList.DataBind();//绑定数据显示控件
    }

}

以上是C#通过存储过程从Oracle数据库读取表数据的示例,请大家多多指教!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,您需要安装Oracle 数据库的驱动程序。您可以从Oracle官网下载适用于您的操作系统的驱动程序,然后将其安装在计算机上。 然后,您需要在ASP.NET MVC项目添加对Oracle数据库的引用。您可以使用NuGet包管理器来安装Oracle.DataAccess NuGet包。 接下来,您需要在Web.config文件添加连接字符串。以下是一个示例连接字符串: ```xml <connectionStrings> <add name="OracleConnectionString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));User ID=yourusername;Password=yourpassword;" providerName="Oracle.DataAccess.Client" /> </connectionStrings> ``` 在上面的连接字符串,您需要将 `yourusername` 和 `yourpassword` 替换为您的Oracle数据库用户名和密码。 现在,您可以在控制器编写代码来查询数据库并将结果显示在视图。以下是一个示例控制器: ```csharp public class HomeController : Controller { public ActionResult Index() { string connectionString = ConfigurationManager.ConnectionStrings["OracleConnectionString"].ConnectionString; OracleConnection connection = new OracleConnection(connectionString); connection.Open(); OracleCommand command = new OracleCommand("SELECT * FROM mytable", connection); OracleDataReader reader = command.ExecuteReader(); List<MyModel> myModels = new List<MyModel>(); while (reader.Read()) { MyModel myModel = new MyModel(); myModel.Id = reader.GetInt32(0); myModel.Name = reader.GetString(1); myModels.Add(myModel); } connection.Close(); return View(myModels); } } ``` 在上面的示例,我们使用OracleConnection对象打开连接,并创建一个OracleCommand对象来执行查询。然后,我们使用OracleDataReader对象读取查询结果,并将其存储在MyModel对象的List。最后,我们将这个List传递给视图。 在视图,您可以使用Razor语法来循环遍历MyModel对象的列,并将其显示在网页上。以下是一个示例视图: ```html @model List<MyModel> <table> <tr> <th>Id</th> <th>Name</th> </tr> @foreach (var item in Model) { <tr> <td>@item.Id</td> <td>@item.Name</td> </tr> } </table> ``` 在上面的视图,我们使用Razor语法循环遍历MyModel对象的列,并将其显示在一个HTML。 希望这可以帮助您开始使用ASP.NET MVC连接Oracle数据库,并将查询结果显示在网页上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值