cari
Rumahpangkalan datatutorial mysql简单的oracle存储过程

简单的oracle存储过程

Jun 07, 2016 pm 03:38 PM
oracleolehpenyimpananMudahproses

1、 oracle 存储过程以及 asp.NET 中调用存储过程,实现一个简单的登录功能,只是作为学习的,所以处理可能不太合理。 ① 在 PL/SQLDeveloper 中编写存储过程 新建 Procedures ,一个简单的登录检查存储过程代码如下: createorreplaceprocedureuser_login(s

1、oracle存储过程以及asp.NET中调用存储过程,实现一个简单的登录功能,只是作为学习的,所以处理可能不太合理。

① PL/SQL Developer中编写存储过程

新建Procedures,一个简单的登录检查存储过程代码如下:

create or replace procedure user_login(sname in nvarchar2 ,spassword in nvarchar2, ReturnValue out number)

 is --变量声明

  Rname nvarchar2(20);

  Rpassword nvarchar2(50);

begin 

 ReturnValue :=0; --赋初值

  select username into Rname from userinfo where username=sname;

  if Rname is not null then

    ReturnValue:=1;--用户名存在

    select userpassword into Rpassword from userinfo where username=sname and userpassword=spassword;

      if Rpassword is not null then

         ReturnValue:=2;--登陆成功              

      else ReturnValue:=1;--用户名存在,密码不正确

        return ;

        end if;

        else ReturnValue:=0;--用户不存在

          end if;    

    exception 

     when no_data_found then

       DBMS_OUTPUT.put_line('没有找到数据'); 

end;

② PL/SQL DeveloperSQL窗口中调用存储过程

declare --变量声明

        ReturnValue number(10);

begin

 user_login('faith','faith',ReturnValue);

   if ReturnValue=0 then

      DBMS_OUTPUT.put_line('不存在此用户');

     elsif ReturnValue=1 then

           DBMS_OUTPUT.put_line('存在用户,但密码不正确');     

     else 

       DBMS_OUTPUT.put_line('登录成功!!!');

     end if;

end;

③ VS2012中调用存储过程

OracleHelper.cs文件中:

public static void iRunProc(string procName, OracleParameter[] paras)

        {           

            OracleConnection conn=new OracleConnection(OracleHelper.strConn);

            if (conn.State == ConnectionState.Closed)

            {

                conn.Open();

            }

            OracleCommand cmd = new OracleCommand(procName, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            if (paras != null)

            {

                for (int i = 0; i 

                {

                    OracleParameter parameter = paras[i];

                    cmd.Parameters.Add(parameter);

                }

            }

            int result = cmd.ExecuteNonQuery();

            cmd.ExecuteNonQuery();

        }

DAL层的webtestDal.cs文件中

 public static int loginByProc(string name,string password,string procName)

        {

            OracleParameter[] parameters ={

                                              new OracleParameter("sname", OracleType.NVarChar, 20),

                                              new OracleParameter("spassword", OracleType.NVarChar, 50),

                                              new OracleParameter("ReturnValue", OracleType.Number, 10)

                                         };

            parameters[0].Value = name;

            parameters[1].Value = password;

            //parameters[2].Value = 0;

            parameters[0].Direction = ParameterDirection.Input;

            parameters[1].Direction = ParameterDirection.Input;

            parameters[2].Direction = ParameterDirection.Output;

            try

            {

                OracleHelper.iRunProc(procName, parameters);

                int i = int.Parse(parameters[2].Value.ToString());

                return i;                  

            }

            catch (Exception e)

            {

                throw e;

            }

        }

BLL层的webtestBll.cs文件中

public static int loginByProc(string name, string password, string procName)

 {

     return webtestDal.loginByProc(name, password, procName);

}

在页面代码的登录按钮事件中

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string name = this.txtName.Text.Trim();
            string password = this.txtPassword.Text.Trim();
            //调用存储过程,判断是否登录成功
            if (webtestBll.loginByProc(name, password, "user_login")==2)//存储过程输出2表示登录成功
            {//登录成功,保存用户名和密码的cookie
                HttpCookie mycookie = new HttpCookie("loginCookie");
                mycookie.Values.Add("cname", name);
                mycookie.Values.Add("cpassword", password);
                mycookie.Expires = DateTime.Now.AddHours(4);//cookie的生命期
                Response.AppendCookie(mycookie);
                Response.Redirect("userinfo.aspx");
            }
            else if (webtestBll.loginByProc(name, password, "user_login") == 1)
            {
               // Response.Write("");
                RegisterClientScriptBlock("msg", "<script>alert(\"密码错误!\");</script>");
            }
            else
                RegisterClientScriptBlock("msg", "<script>alert(\"无法认证!\");</script>");
        }

2、登录之后,传递cookie

先获取登录界面的cookie值(代码如上)

将登录页面的cookie值传给跳转页面

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = webtestBll.getAll();
                userInfoGrid.DataSource = dt;
                if (dt != null)
                    userInfoGrid.DataBind();
                
                HttpCookie mycookie = null;
                if (Request.Cookies.Get("loginCookie") != null)
                {//当用户登录了时,获取页面传来的cookie值
                    mycookie = Request.Cookies.Get("loginCookie");
                    this.txtLoginName.Text = mycookie.Values["cname"].ToString();
                    this.txtLoginPassword.Text = mycookie.Values["cpassword"].ToString();
                }
                else
                {//cookie过期或者没登录
                    Response.Redirect("userLogin.aspx?errorMsg=您还没登陆,请先登陆!");
                }
            }
        }

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Blob MySQL: Adakah terdapat had?Blob MySQL: Adakah terdapat had?May 08, 2025 am 12:22 AM

MySqlblobShavelimits: TinyBlob (255bytes), Blob (65,535bytes), MediumBlob (16,777,215bytes), andlongblob (4,294,967,295bytes) Obsefectively: 1) PertimbangkanPerformanceImpactsandstorelargeblobsexternally; 2) ManageBackupSandReplicationCarefly; 3) UsePathsinst

MySQL: Apakah alat terbaik untuk mengautomasikan penciptaan pengguna?MySQL: Apakah alat terbaik untuk mengautomasikan penciptaan pengguna?May 08, 2025 am 12:22 AM

Alat dan teknologi terbaik untuk mengautomasikan penciptaan pengguna di MySQL termasuk: 1. MySqlworkbench, sesuai untuk persekitaran kecil dan sederhana, mudah digunakan tetapi penggunaan sumber yang tinggi; 2. Ansible, sesuai untuk persekitaran pelbagai pelayan, lengkung pembelajaran yang mudah tetapi curam; 3. Skrip python adat, fleksibel tetapi perlu memastikan keselamatan skrip; 4 Boneka dan chef, sesuai untuk persekitaran berskala besar, kompleks tetapi berskala. Skala, keluk pembelajaran dan keperluan integrasi harus dipertimbangkan ketika memilih.

MySQL: Bolehkah saya mencari di dalam gumpalan?MySQL: Bolehkah saya mencari di dalam gumpalan?May 08, 2025 am 12:20 AM

Ya, yoursearchinsideablobinmysqlusingspecifictechniques.1) converttheblobtoautf-8stringwithconvertfunctionandsearchusing.2) forcompressedblobs, usedcompressbeforeconversion.3) overperformanceimpacsanddata

Jenis Data String Mysql: Panduan KomprehensifJenis Data String Mysql: Panduan KomprehensifMay 08, 2025 am 12:14 AM

Mysqloffersvariousstringdatatypes: 1) charforfixed-lengtstrings, idealforconsistentlengthdatalikecountrycodes; 2) varcharforvariable-lengtstrings, stateforfieldslikenames;

Menguasai Blobs MySQL: Tutorial Langkah demi LangkahMenguasai Blobs MySQL: Tutorial Langkah demi LangkahMay 08, 2025 am 12:01 AM

Tomastermysqlblobs, ikutiTheSesteps: 1) choosetheappropriateblobtype (tinyblob, blob, mediumblob, longblob) berasaskan.2) InsertDatausingLoad_FileForefficiency.3)

Jenis Data Blob di MySQL: Gambaran keseluruhan terperinci untuk pemajuJenis Data Blob di MySQL: Gambaran keseluruhan terperinci untuk pemajuMay 07, 2025 pm 05:41 PM

BlobdatatypesinmysqlareusedForVoringLargeBinaryDatalikeImagesOrudio.1) useblobtypes (tinyblobtolongblob) berasaskanonDatasizeneeds. 2) storeBlobsin persepsi petooptimize prestasi.3) Considersxternal Forel Blob Romana DatabasesizerIndimprovebackupe

Cara Menambah Pengguna ke MySQL dari baris arahanCara Menambah Pengguna ke MySQL dari baris arahanMay 07, 2025 pm 05:01 PM

Toadduserstomysqlfromthecommandline, loginasroot, thenusecreateuser'username '@' host'identifiedby'password '; tocreateanewuser.grantpermissionswithgrantallprivilegesondatabase

Apakah jenis data rentetan yang berbeza di MySQL? Gambaran keseluruhan terperinciApakah jenis data rentetan yang berbeza di MySQL? Gambaran keseluruhan terperinciMay 07, 2025 pm 03:33 PM

Mysqlofferstightstringdatatypes: char, varchar, binari, varbinary, gumpalan, teks, enum, andset.1) charisfixed-length, idealforconsistentdatalikecountrycodes.2) varcharisvariable-length, efficialforvaryingdatalikenames.3)

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan