=======后台Oracle存儲過程================
1、創建表
--判讀表存在先刪除
begin
EXECUTE IMMEDIATE 'DROP TABLE student';
EXCEPTION WHEN OTHERS THEN NULL;
end;
/
create table student(
stuId varchar(50) primary key not null, --Id
stuName varchar(50) not null, --用戶名
stuPwd number(20) not null --密碼(最后一個不能有逗號)
);
--插入數值
Insert into student values('001','張三',123);
Insert into student values('002','王五',123);
Insert into student values('003','李四',123);
Insert into student values('004','趙六',123);
commit; --提交
--測試創建表成功
select * from student;
2、創建登陸函數
create or replace function funLogin(name in varchar2,pwd in number)
return varchar2
is
co number;
begin
select count(*) into co from student
where stuName=name and stuPwd=pwd;
if co>1 then
return '用戶'||name||',登陸成功!';
else
return '用戶'||name||',登陸失敗!';
end if;
end funLogin;
/
3、測試登陸函數
set serveroutput on; --顯示輸出信息
declare
name varchar2(50):='張三';
pwd number(20):=123;
re varchar2(50);
begin
select funLogin(name,pwd) into re from dual;
dbms_output.put_line(re);
end;
/
=======前台程序代碼======================
1、在Web.config配置登陸信息
<appSettings >
<add key="linkOracle_01" value="Data Source=數據庫;Persist Security Info=True;User ID=用戶名;Password=密碼;Unicode=True;" />
</appSettings>
2、前台Login.aspx
3、后台代碼Login.aspx.cs
引用添加NET命名空間
代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//引用-》添加命名空間
using System.Data.OracleClient;
using System.Data;
namespace WebApplication1
{
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
//用戶名和密碼可以從外部輸入
string name = txtName.Text.Trim(); ;
int pwd = Convert.ToInt32(txtPwd.Text.Trim());
string strConn = System.Configuration.ConfigurationManager.AppSettings["linkOracle_01"].ToString();
OracleConnection conn = new OracleConnection(strConn);
OracleCommand cmd = new OracleCommand("funLogin", conn);
cmd.CommandType = CommandType.StoredProcedure;
//參數
OracleParameter pName = new OracleParameter("name", OracleType.VarChar, 50);
pName.Value = name;
pName.Direction = ParameterDirection.Input;
OracleParameter pPwd = new OracleParameter("pwd", OracleType.Number, 20);
pPwd.Value = pwd;
pPwd.Direction = ParameterDirection.Input;
//返回值名稱可以re隨便寫
OracleParameter pRe = new OracleParameter("re", OracleType.VarChar, 50);
pRe.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(pName);
cmd.Parameters.Add(pPwd);
cmd.Parameters.Add(pRe);
conn.Open();
cmd.ExecuteNonQuery();
ScriptManager.RegisterStartupScript(this.btnLogin, btnLogin.GetType(),
"re", "alert('" + pRe.Value.ToString() + "');", true);
//或者這樣注冊 返回信息
//Page.RegisterStartupScript("re", "<script>alert('" + pRe + "')</script>");
conn.Close();
}
}
}