欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Asp.Net Oracle數(shù)據(jù)的通用操作類

 更新時間:2009年12月20日 02:20:47   作者:  
Asp.Net連接Oracle數(shù)據(jù)的通用操作類并且利用它對數(shù)據(jù)庫查詢、匯總、更新等操作演示
在一個項(xiàng)目中,可能用到2種數(shù)據(jù),比如說ORACLE ,MS_SQLSERVER 同時要用到,MS-SQL的數(shù)據(jù)通用類在很多的教程中都有現(xiàn)成的例子和代碼,但是ORACLE比較少見,但是本次項(xiàng)目中正好用到,貼出來和大家一起共享。
這里用OraDbHelper.cs做常見的四種數(shù)據(jù)操作
一 ExecuteDataTable 返回到內(nèi)存數(shù)據(jù)表
二 SqlDataReader 直接讀數(shù)據(jù)
三 ExecuteScalar 獲得一條數(shù)據(jù)
四 ExecuteNonQuery 對數(shù)據(jù)庫執(zhí)行增刪改操作
環(huán)境:客戶端WIN XP 安裝的是ORACLE 8.17客戶端
數(shù)據(jù)庫服務(wù)器是:Red Hat Enterprise Linux AS 安裝的是Oracle Database 10g
復(fù)制代碼 代碼如下:

SQL*Plus: Release 8.1.7.0.0 - Production on 星期六 12月 19 18:10:19 2009
(c) Copyright 2000 Oracle Corporation. All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

首先 OraDbHelper.cs
復(fù)制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
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.SqlClient;
using System.Data.OracleClient;
namespace xjy.DAL
{
/// <summary>
/// OraDbHelper 對ORACLE 數(shù)據(jù)庫操作的通用類
/// 作者;薛佳岳
/// 日期:2009-12-18
/// </summary>
public class OraDbHelper
{
private string connectionString;
/// <summary>
/// 設(shè)置數(shù)據(jù)庫字符串的連接
/// </summary>
public string ConnectionString
{
set { connectionString = value; }
}
public OraDbHelper(string connectionString)
{
this.connectionString = connectionString;
}
#region ExecuteDataTable
/// <summary>
/// 執(zhí)行一個查詢,并返回結(jié)果集
/// </summary>
/// <param name="commandText">要執(zhí)行的查詢SQL文本命令</param>
/// <returns>返回查詢結(jié)果集</returns>
public DataTable ExecuteDataTable(string commandText)
{
return ExecuteDataTable(commandText, CommandType.Text, null);
}
/// <summary>
/// 執(zhí)行一個查詢,并返回查詢結(jié)果
/// </summary>
/// <param name="commandText">要執(zhí)行的SQL語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者SQL文本命令</param>
/// <returns>返回查詢結(jié)果集</returns>
public DataTable ExecuteDataTable(string commandText, CommandType commandType)
{
return ExecuteDataTable(commandText, commandType, null);
}
/// <summary>
/// 執(zhí)行一個查詢,并返回查詢結(jié)果
/// </summary>
/// <param name="commandText">要執(zhí)行的SQL語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者SQL文本命令</param>
/// <param name="parameters">PL-SQL 語句或存儲過程的參數(shù)數(shù)組</param>
/// <returns></returns>
public DataTable ExecuteDataTable(string commandText, CommandType commandType, params OracleParameter[] parameters)
{
DataTable data = new DataTable();//實(shí)例化DataTable,用于裝載查詢結(jié)果集
using (OracleConnection connection = new OracleConnection(connectionString))
{
using (OracleCommand command = new OracleCommand(commandText, connection))
{
command.CommandType = commandType;//設(shè)置command的CommandType為指定的CommandType
//如果同時傳入了參數(shù),則添加這些參數(shù)
if (parameters != null)
{
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
//通過包含查詢SQL的SqlCommand實(shí)例來實(shí)例化SqlDataAdapter
OracleDataAdapter adapter = new OracleDataAdapter(command);
adapter.Fill(data);//填充DataTable
}
}
return data;
}
#endregion ExecuteDataTable
#region ExecuteReader
/// <summary>
/// 將 CommandText 發(fā)送到 Connection 并生成一個 OracleDataReader。
/// </summary>
/// <param name="commandText">要執(zhí)行的查詢SQL文本命令</param>
/// <returns></returns>
public OracleDataReader ExecuteReader(string commandText)
{
return ExecuteReader(commandText, CommandType.Text, null);
}
/// <summary>
/// 將 CommandText 發(fā)送到 Connection 并生成一個 OracleDataReader。
/// </summary>
/// <param name="commandText">要執(zhí)行的SQL語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者SQL文本命令</param>
/// <returns></returns>
public OracleDataReader ExecuteReader(string commandText, CommandType commandType)
{
return ExecuteReader(commandText, commandType, null);
}
/// <summary>
/// 將 CommandText 發(fā)送到 Connection 并生成一個 OracleDataReader。
/// </summary>
/// <param name="commandText">要執(zhí)行的SQL語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者SQL文本命令</param>
/// <param name="parameters">Transact-SQL 語句或存儲過程的參數(shù)數(shù)組</param>
/// <returns></returns>
public OracleDataReader ExecuteReader(string commandText, CommandType commandType, OracleCommand[] parameters)
{
OracleConnection connection = new OracleConnection(connectionString);
OracleCommand command = new OracleCommand(commandText, connection);
//如果同時傳入了參數(shù),則添加這些參數(shù)
if (parameters != null)
{
foreach (OracleCommand parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
connection.Open();
//CommandBehavior.CloseConnection參數(shù)指示關(guān)閉Reader對象時關(guān)閉與其關(guān)聯(lián)的Connection對象
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
#endregion ExecuteReader
#region ExecuteScalar
/// <summary>
/// 從數(shù)據(jù)庫中檢索單個值(例如一個聚合值)。
/// </summary>
/// <param name="commandText">要執(zhí)行的查詢PL-SQL文本命令</param>
/// <returns></returns>
public Object ExecuteScalar(string commandText)
{
return ExecuteScalar(commandText, CommandType.Text, null);
}
/// <summary>
/// 從數(shù)據(jù)庫中檢索單個值(例如一個聚合值)。
/// </summary>
/// <param name="commandText">要執(zhí)行的SQL語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者PL-SQL文本命令</param>
/// <returns></returns>
public Object ExecuteScalar(string commandText, CommandType commandType)
{
return ExecuteScalar(commandText, commandType, null);
}
/// <summary>
/// 從數(shù)據(jù)庫中檢索單個值(例如一個聚合值)。
/// </summary>
/// <param name="commandText">要執(zhí)行的SQL語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者SQL文本命令</param>
/// <param name="parameters">PL-SQL 語句或存儲過程的參數(shù)數(shù)組</param>
/// <returns></returns>
public Object ExecuteScalar(string commandText, CommandType commandType, OracleParameter[] parameters)
{
object result = null;
using (OracleConnection connection = new OracleConnection(connectionString))
{
using (OracleCommand command = new OracleCommand(commandText, connection))
{
command.CommandType = commandType;//設(shè)置command的CommandType為指定的CommandType
//如果同時傳入了參數(shù),則添加這些參數(shù)
if (parameters != null)
{
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
connection.Open();//打開數(shù)據(jù)庫連接
result = command.ExecuteScalar();
}
}
return result;//返回查詢結(jié)果的第一行第一列,忽略其它行和列
}
#endregion ExecuteScalar
#region ExecuteNonQuery
/// <summary>
/// 對數(shù)據(jù)庫執(zhí)行增刪改操作
/// </summary>
/// <param name="commandText">要執(zhí)行的查詢pl-sql文本命令</param>
/// <returns></returns>
public int ExecuteNonQuery(string commandText)
{
return ExecuteNonQuery(commandText, CommandType.Text, null);
}
/// <summary>
/// 對數(shù)據(jù)庫執(zhí)行增刪改操作
/// </summary>
/// <param name="commandText">要執(zhí)行的pl-sql語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者pl-sql文本命令</param>
/// <returns></returns>
public int ExecuteNonQuery(string commandText, CommandType commandType)
{
return ExecuteNonQuery(commandText, commandType, null);
}
/// <summary>
/// 對數(shù)據(jù)庫執(zhí)行增刪改操作
/// </summary>
/// <param name="commandText">要執(zhí)行的pl-sql語句</param>
/// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者pl-sql文本命令</param>
/// <param name="parameters">pl-sql 語句或存儲過程的參數(shù)數(shù)組</param>
/// <returns>返回執(zhí)行操作受影響的行數(shù)</returns>
public int ExecuteNonQuery(string commandText, CommandType commandType, OracleParameter[] parameters)
{
int count = 0;
using (OracleConnection connection = new OracleConnection(connectionString))
{
using (OracleCommand command = new OracleCommand(commandText, connection))
{
command.CommandType = commandType;//設(shè)置command的CommandType為指定的CommandType
//如果同時傳入了參數(shù),則添加這些參數(shù)
if (parameters != null)
{
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
connection.Open();//打開數(shù)據(jù)庫連接
count = command.ExecuteNonQuery();
}
}
return count;//返回執(zhí)行增刪改操作之后,數(shù)據(jù)庫中受影響的行數(shù)
}
#endregion ExecuteNonQuery
}
}

一測試datatable
前臺代碼
復(fù)制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>無標(biāo)題頁</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>

后臺代碼
復(fù)制代碼 代碼如下:

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 xjy.DAL;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ConnectionStringSettings setting = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString1"];
string myStr = setting.ConnectionString;
OraDbHelper myora = new OraDbHelper(myStr);
DataTable t1 = new DataTable();
t1=myora.ExecuteDataTable("select art_no,descr from article where art_no<100");
GridView1.DataSource=t1;
GridView1.DataBind();
}
}

結(jié)果如圖


二 測試 SqlDataReader
前臺代碼不變
后臺代碼如下:

復(fù)制代碼 代碼如下:

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 xjy.DAL;
using System.Data.SqlClient;
using System.Data.OracleClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ConnectionStringSettings setting = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString1"];
string myStr = setting.ConnectionString;
OraDbHelper myora = new OraDbHelper(myStr);
OracleDataReader myDr = myora.ExecuteReader("select art_no,descr from article where art_no<100");
while (myDr.Read())
{
Response.Write("|" + myDr[0] + "|" + myDr[1]+"
");
Response.Write("____________________________________");
}
myDr.Close();
myDr.Dispose();
}
}

結(jié)果如圖

三測試ExecuteScalar
前臺代碼

復(fù)制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>無標(biāo)題頁</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>

后臺代碼
復(fù)制代碼 代碼如下:

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 xjy.DAL;
using System.Data.SqlClient;
using System.Data.OracleClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ConnectionStringSettings setting = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString1"];
string myStr = setting.ConnectionString;
OraDbHelper myora = new OraDbHelper(myStr);
string shuliang;
shuliang = myora.ExecuteScalar("select count(art_no) from article where art_no<100").ToString();
Label1.Text = shuliang;
}
}

結(jié)果如圖:

四測試ExecuteNonQuery

前臺代碼:

復(fù)制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>無標(biāo)題頁</title>
</head>
<body>
<form id="form1" runat="server">
<div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="恢復(fù)值" />
</div>
</form>
</body>
</html>

后臺代碼
復(fù)制代碼 代碼如下:

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 xjy.DAL;
using System.Data.SqlClient;
using System.Data.OracleClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ConnectionStringSettings setting = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString1"];
string myStr = setting.ConnectionString;
OraDbHelper myora = new OraDbHelper(myStr);
DataTable t1 = new DataTable();
Label1.Text = "更新前的值";
t1 = myora.ExecuteDataTable("select art_no,descr from article where art_no=8");
GridView1.DataSource = t1;
GridView1.DataBind();
if (myora.ExecuteNonQuery("update article set descr='更新描述測試值' where art_no=8")>0)
{
Label2.Text = "更新后的值";
t1 = myora.ExecuteDataTable("select art_no,descr from article where art_no=8");
GridView2.DataSource = t1;
GridView2.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
ConnectionStringSettings setting = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString1"];
string myStr = setting.ConnectionString;
OraDbHelper myora = new OraDbHelper(myStr);
DataTable t1 = new DataTable();
if (myora.ExecuteNonQuery("update article set descr='可憐可憐60ML/瓶' where art_no=8") > 0)
{
Label2.Text = "更新后的值";
t1 = myora.ExecuteDataTable("select art_no,descr from article where art_no=8");
GridView2.DataSource = t1;
GridView2.DataBind();
}
}
}

結(jié)果:

相關(guān)文章

  • asp.net實(shí)現(xiàn)將ppt文檔轉(zhuǎn)換成pdf的方法

    asp.net實(shí)現(xiàn)將ppt文檔轉(zhuǎn)換成pdf的方法

    這篇文章主要介紹了asp.net實(shí)現(xiàn)將ppt文檔轉(zhuǎn)換成pdf的方法,通過自定義函數(shù)實(shí)現(xiàn)將pptx格式的文件轉(zhuǎn)換成pdf格式文件的功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • 如何給asp.net core寫個中間件記錄接口耗時

    如何給asp.net core寫個中間件記錄接口耗時

    這篇文章主要給大家介紹了關(guān)于如何給asp.net core寫個中間件記錄接口耗時的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用asp.net core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • ASP.NET MVC的四種驗(yàn)證編程方式

    ASP.NET MVC的四種驗(yàn)證編程方式

    ASP.NET MVC采用Model綁定為目標(biāo)Action生成了相應(yīng)的參數(shù)列表,但是在真正執(zhí)行目標(biāo)Action方法之前,還需要對綁定的參數(shù)實(shí)施驗(yàn)證以確保其有效性,我們將針對參數(shù)的驗(yàn)證成為Model綁定,需要的朋友可以參考下
    2015-10-10
  • asp.net access web.config denied

    asp.net access web.config denied

    如果出現(xiàn)這個問題,最好首先檢查一下ASPNET的帳號,是否有訪問權(quán)限。
    2009-04-04
  • ASP.NET MVC中的AJAX應(yīng)用

    ASP.NET MVC中的AJAX應(yīng)用

    這篇文章主要介紹了ASP.NET MVC中的AJAX應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2014-10-10
  • 如何使用.NET Core 選項(xiàng)模式【Options】

    如何使用.NET Core 選項(xiàng)模式【Options】

    這篇文章主要介紹了如何使用.NET Core 選項(xiàng)模式,文中講解非常詳細(xì),代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • .NET?6?跨服務(wù)器聯(lián)表查詢操作MySql、Oracle、SqlServer等相互聯(lián)表

    .NET?6?跨服務(wù)器聯(lián)表查詢操作MySql、Oracle、SqlServer等相互聯(lián)表

    這篇文章主要介紹了.NET?6?跨服務(wù)器聯(lián)表查詢,?MySql、Oracle、SqlServer等相互聯(lián)表,在這里給大家普及下什么是多庫架構(gòu)ORM就是說一個對象可以同時操作和管理多個數(shù)據(jù)庫 我們稱為多庫架構(gòu),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • .Net彈性和瞬態(tài)故障處理庫Polly實(shí)現(xiàn)執(zhí)行策略

    .Net彈性和瞬態(tài)故障處理庫Polly實(shí)現(xiàn)執(zhí)行策略

    這篇文章介紹了.Net彈性和瞬態(tài)故障處理庫Polly實(shí)現(xiàn)執(zhí)行策略的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • ASP.NET Core中如何實(shí)現(xiàn)重定向詳解

    ASP.NET Core中如何實(shí)現(xiàn)重定向詳解

    這篇文章主要給大家介紹了關(guān)于ASP.NET Core中如何實(shí)現(xiàn)重定向的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • .NET5控制臺程序使用EF連接MYSQL數(shù)據(jù)庫的方法

    .NET5控制臺程序使用EF連接MYSQL數(shù)據(jù)庫的方法

    這篇文章主要介紹了.NET5控制臺程序使用EF連接MYSQL數(shù)據(jù)庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08

最新評論