asp.net三层架构连接Oracle 11g详解
来源:互联网 发布:it培训机构排名 编辑:程序博客网 时间:2024/06/07 19:49
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 LoginName=@LoginName,LoginPassword=@LoginPassword WHERE ID=@ID"; 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 ID=@ID"; 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 UserName=@LoginName AND Password=@LoginPassword"; 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 ID=@ID"; 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>
0 0
- asp.net三层架构连接Oracle 11g详解
- [三层架构]Asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- ASP.NET三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- asp.net三层架构详解
- AR引擎vuforia源码分析、中文注释(1)
- 关于openvpn的server.conf配置文件的参数
- 【OpenCV】VS2015与OpenCV2.4.11配置
- Laravel框架中简单使用中间件
- Oracle(入门四)
- asp.net三层架构连接Oracle 11g详解
- Hibernate(二)
- 开个博客瞧一瞧
- Android简易实战教程--第十三话《短信备份和还原~三》
- #107 Word Break
- selenium2.0报错:stale element reference: element is not attached to the page document的解决办法
- Hdu 4309Seikimatsu Occult Tonneru【最大流Dinic+暴力枚举Dfs+建图】人生难免磕磕碰碰
- HDU 2089 数位DP入门
- 数学公式 —— 向量