asp.net三層架構連線Oracle 11g詳解
asp.net三層架構連線Oracle 11g
連線Oracle時使用微軟的Oracle連線元件;
一 DAL層
using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Data; using System.Data.OracleClient; namespace SystemDAL { public class DAL { //連線字串 public static string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["db"].ToString(); public DAL() { //connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["db"].ToString(); } /// <summary> /// 執行單條語句 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static int ExecuteNonQuery(string sql) { int x = 0; try { // Open a connection to the DB. OracleConnection connOra = new OracleConnection(connectionString); connOra.Open(); OracleTransaction tran = connOra.BeginTransaction(); // Create a command to execute the sql statement. OracleCommand cmdOra = connOra.CreateCommand(); cmdOra.CommandText = sql; x = cmdOra.ExecuteNonQuery(); tran.Commit(); connOra.Close(); connOra.Dispose(); cmdOra.Dispose(); } catch (Exception ex) { //log.Error(ex.StackTrace); } return x; } public static DataTable ExecuteDataTable(String cmdText) { DataTable dt = new DataTable(); //DbProviderFactory factory = DbProviderFactories.GetFactory(providerName); try { // Open a connection to the DB. //DbConnection connOra = factory.CreateConnection(); OracleConnection connOra = new OracleConnection(connectionString); //connOra.ConnectionString = connectionString; connOra.Open(); // Create a command to execute the sql statement. //DbCommand cmd = factory.CreateCommand(); OracleCommand cmd = connOra.CreateCommand(); cmd.CommandText = cmdText; OracleDataAdapter ada = new OracleDataAdapter(); //DbDataAdapter ada = factory.CreateDataAdapter();// new OracleDataAdapter(cmd1); ada.SelectCommand = cmd; ada.Fill(dt); connOra.Close(); connOra.Dispose(); cmd.Dispose(); } catch (Exception ex) { string str = ex.Message; } return dt; } } }
類DAL;
執行單條語句ExecuteNonQuery:
傳入sql語句,返回值int;
開啟Oracle連線,構造Oracle命令物件,設定命令物件的命令文字等於傳入的sql;
執行sql,返回執行的int型結果;
獲取資料表ExecuteDataTable:
傳入sql語句,返回資料表;
開啟Oracle連線;
構造Oracle命令物件,設定命令物件的命令文字等於傳入的sql;
new一個Oracle介面卡物件,設定介面卡物件的SelectCommand等於命令物件;
呼叫介面卡物件的Fill方法填充資料表物件,返回資料表物件;
二 BLL層
using System;
using System.Collections.Generic;
using System.Text;
using SystemModel;
using SystemDAL;
using System.Data;
namespace SystemBLL
{
public class BLL
{
public BLL()
{
}
/// <summary>
/// 插入方法
/// </summary>
/// <param name="M"></param>
/// <returns></returns>
public static int InsertData(LoginModel M)
{
string sql = "INSERT INTO Login VALUES(@LoginName,@LoginPassword)";
try
{
DAL dal = new DAL();
return DAL.ExecuteNonQuery(sql);
}
catch (Exception E)
{
throw E;
}
}
/// <summary>
/// 修改方法
/// </summary>
/// <param name="M"></param>
/// <returns></returns>
public static int UpdateTData(LoginModel M)
{
string sql = "UPDATE Login SET [email protected],[email protected] WHERE [email protected]";
try
{
DAL dal = new DAL();
return DAL.ExecuteNonQuery(sql);
}
catch (Exception E)
{
throw E;
}
}
/// <summary>
/// 刪除方法
/// </summary>
/// <param name="M"></param>
/// <returns></returns>
public static int DeleteData(LoginModel M)
{
string sql = "DELETE FROM Login WHERE [email protected]";
try
{
DAL dal = new DAL();
return DAL.ExecuteNonQuery(sql);
}
catch (Exception E)
{
throw E;
}
}
/// <summary>
/// 登入方法
/// </summary>
/// <param name="M"></param>
/// <returns></returns>
public static DataTable Login(string LoginName, string LoginPassword)
{
string sql = "SELECT * FROM Logins WHERE [email protected] AND [email protected]";
try
{
DAL dal = new DAL();
return DAL.ExecuteDataTable(sql);
}
catch (Exception E)
{
throw E;
}
}
/// <summary>
/// 查詢所有使用者
/// </summary>
/// <param name="M"></param>
/// <returns></returns>
public static DataTable GetUser(LoginModel M)
{
try
{
string sql = "SELECT * FROM Login";
DAL dal = new DAL();
return DAL.ExecuteDataTable(sql);
}
catch (Exception E)
{
throw E;
}
}
/// <summary>
/// 查詢單個使用者
/// </summary>
/// <param name="M"></param>
/// <returns></returns>
public static DataTable GetUserID(LoginModel M)
{
try
{
string sql = "SELECT * FROM Login WHERE [email protected]";
DAL dal = new DAL();
return DAL.ExecuteDataTable(sql);
}
catch (Exception E)
{
throw E;
}
}
}
}
引用SystemModel,SystemDAL;
類BLL;
插入資料InsertData:
傳入LoginModel物件M,返回int;
呼叫DAL.ExecuteNonQuery在Login表中插入值;
修改資料UpdateTData:
傳入LoginModel物件M,返回int;
呼叫DAL.ExecuteNonQuery更新Login表;
刪除資料DeleteData:
傳入LoginModel物件M,返回int;
呼叫DAL.ExecuteNonQuery從Login表刪除資料;
登入方法Login:
呼叫DAL.ExecuteNonQuery從Login表返回匹配的記錄;
返回型別為DataTable;
查詢所有使用者,返回DataTable;
查詢單個使用者,根據ID返回DataTable;
三 實體層
using System;
using System.Collections.Generic;
using System.Text;
namespace SystemModel
{
public class LoginModel
{
public LoginModel()
{
}
private int _ID;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
private string _LoginName;
public string LoginName
{
get { return _LoginName; }
set { _LoginName = value; }
}
private string _LoginPassword;
public string LoginPassword
{
get { return _LoginPassword; }
set { _LoginPassword = value; }
}
}
}
四 前端
login.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>登入介面|- 51aspx.com</title>
</head>
<body style="text-align: center">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Panel ID="Panel1" runat="server" Height="13px" Width="359px" style="font-weight: bold; font-size: small">
<table style="width: 372px">
<tr>
<td style="width: 81px">
<asp:Label ID="Label1" runat="server" Text="使用者名稱"></asp:Label></td>
<td style="width: 146px">
<asp:TextBox ID="TextBox1" runat="server" Height="18px"></asp:TextBox></td>
<td style="width: 116px">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
ErrorMessage="使用者名稱不能為空" ForeColor="DarkGray" Width="126px"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="width: 81px; height: 28px;">
<asp:Label ID="Label2" runat="server" Text="密 碼"></asp:Label></td>
<td style="width: 146px; height: 28px;">
<asp:TextBox ID="TextBox2" runat="server" TextMode="Password" Width="149px"></asp:TextBox></td>
<td style="width: 116px; height: 28px;">
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2"
ErrorMessage="密碼不能為空" ForeColor="DarkGray"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="width: 81px">
</td>
<td style="width: 146px">
<asp:LinkButton ID="LinkButton1" runat="server" Font-Underline="False" ForeColor="Black"
OnClick="LinkButton1_Click">登 錄</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" Font-Underline="False" ForeColor="Black"
OnClick="LinkButton2_Click">重 置</asp:LinkButton></td>
<td style="width: 116px">
</td>
</tr>
</table>
</asp:Panel>
</form>
</body>
</html>
login.aspx.cs
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 SystemModel;
using SystemBLL;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
DataTable table1 = BLL.Login(this.TextBox1.Text, this.TextBox2.Text);
if (table1.Rows.Count > 0)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('登入成功!');</script>");
Response.Redirect("test.aspx");
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('登入失敗!');</script>");
}
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
this.TextBox1.Text = null;
this.TextBox2.Text = null;
}
}
五 web.config
<span style="white-space:pre"> </span><connectionStrings>
<add name="db" connectionString="Data Source=ORCL;User Id=scott;Password=123dd654ca"/>
</connectionStrings>
相關推薦
asp.net三層架構連線Oracle 11g詳解
asp.net三層架構連線Oracle 11g 連線Oracle時使用微軟的Oracle連線元件; 一 DAL層 using System; using System.Collections.Generic; using System.Text; using System
VS2010構建ASP.NET三層架構例項演示(一)
開發環境:vs2010+SQLSERVER2008 功能:簡單實現顯示一張表的記錄。 具體步驟: 1、開啟sql server2008,在裡面建立資料庫名為halfcool,然後在資料庫建立users表,裡面有三個欄位id(自動增加),username(
VS2010構建ASP.NET三層架構例項演示(三)
8、業務層(Bll),針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。 建立的方法同上。名稱為Bll;解決方案:新增到解決方案;路徑為e:\test\Solution1;然後將Bll目錄下面的class1.cs改名為UserBll.cs了。這層要引用Da
asp.net三層架構詳解
一、資料庫 /*==============================================================*/ /* DBMS name: Microsoft SQL Server 2000
ASP.NET 三層架構技術 人力資源管理系統專案HR (深入WebServic
白菜價, 想要的聯絡QQ:867635458,非誠勿擾! ASP.NET MVC Linq 技術 企業級通用OA系統 全程開發 大型企業級別OA專案實戰全新上線啦!本專案由小孔子講師全程錄製。小孔子老師大家都很熟悉了,他所錄製的其他課程都受到了學員的一致好
【ASP.NET開發】.NET三層架構簡單解析
這篇文章本來應該很早就寫出來的,但是一直苦於自己的精神能力有限,而且已經到了我們學校的考試周,所以時間上還是有點緊迫。關鍵的一點就是,找不到合理的思路來寫,思路沒有的話,就算是再好的素材,也寫不來大家喜歡的文章。 之前已經寫過關於.NET三層架的兩篇文章了,一篇是《【ASP
.net三層架構開發步驟
City城市表,id ,name,password,address,phone; 1.新建一個windows窗體應用程式,CitySys 2.檔案–》新增–》新建專案–》類庫(CitySysModel)–》重新命名class1.cs的類(CityModel)。 3.根據資料表裡面的欄位,
.NET三層架構
零基礎學C#3.0 -- .net的三層架構 - CodingPenguin 時間 2014-01-26 17:40:00 部落格園-所有隨筆區 原文 http://www.cnblogs.com/codingpenguin/p/3534304.html 主題 .N
.NET 三層架構
Connection : 用於連線資料庫命令. Command : 執行鍼對資料庫的SQL命令. ExecuteScalar() : 返回第一行第一列的值(object型別). ExecuteNonQuery() : 返回執行命令後受到影響的行數(int型別). ExecuteReade
.net三層架構(3-tier application)
做一般網站用三層架構似乎麻煩些,要考慮基層呢,用自動生成程式碼工具的話可以考慮使用。下面引用別人的對三層架構解釋。 三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、資
.net 三層架構的認識
所謂三層架構,是在客戶端與資料庫之間加入了一個“中間層”,也叫元件層。 這裡所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構, 也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一臺機器上。 在專案
ASP.Net MVC中使用Chart 控制元件詳解
在 .NET 3.5 的時候,微軟就提供了一個 Chart 控制元件,網路上有大量的關於在 VS2008 中使用這個控制元件的文章,在 VS2010 中,這個控制元件已經被整合到 ASP.NET 4.0 中,可以從工具箱中直接使用了。 這個控制元件在 ASP.NET 經典的頁面中很容易使用,但是在
VC使用ADO連線Oracle資料庫詳解(含原始碼下載)
ADO 主要物件介紹 ADO物件包括:連線物件(Connection Object)、命令物件 (Command Object) 、記錄集對象(RecordSet Object)、欄位物件(Field Object) 、記錄物件(Record Object)
ASP.Net 2.0窗體身份驗證機制詳解(FormsAuthentication) (轉載)
ASP.Net 2.0窗體身份驗證機制詳解(FormsAuthentication) 收藏 轉自:http://www.aspxclub.com/l12/c_3689.html 本篇文章介紹了在ASP.Net 2.0如何做窗體身份驗證,並且講解了IIS和ASP.Net2.0窗體身份驗證機制是如何結合在一
ASP.net DropDownList資料繫結及使用詳解
1. dropdownlist 繫結資料 1.1 固定繫結(適合已經固定的資料繫結到dropdownlist) 例項: <asp:DropDownList runat="server"ID="ddlArea" Width="120px" > &l
DevExpress ASP.NET Bootstrap Controls v18.2新功能詳解(一)
訪問 文件管理 dropbox .net ots 二次 pen 工具 web 行業領先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式發布,本站將以連載的形式為大家介紹新版本新功能。本文將介紹了DevExpres
ASP.NET頁面跳轉的三大方法詳解
頁面 詳解 不支持 客戶 rec 一個 .exe 決定 用戶 ASP.NET頁面跳轉有什麽方法呢?,現在給大家介紹三種方法,他們的區別是什麽呢?讓我們開始吧: ASP.NET頁面跳轉1、response.redirect 這個跳轉頁面的方法跳轉的速度不快,因為它要走2個來回
asp.net mvc 加三層架構 完美搭配
第二章 幫助 summary 本地數據庫 asp 存在 remoting new org http://www.hysql.org/aspnet/20180630/5712.html 先來一張項目的層級結構圖: Model:模型層,主要是各種類型、枚舉以及ORM框
Asp.Net MVC+EF+三層架構 簡單搭建 (1) Asp.Net MVC+EF+三層架構
首先,謝謝各位過客觀看,今天我們說下簡單的 Asp.Net MVC+EF+三層架構 搭建( 第一部分)。 很簡單,先看下完成之後程式碼圖: 這裡講的是一個整體框架的搭建,所以頁面暫時Pass,先以一個小的查詢為例。 一、新建Model、Dal、Bl