zoukankan      html  css  js  c++  java
  • C# WINFORM 窗体执行ORACLE存储过程 进行增删改查 自己编写借助网络(二)

    窗体界面:

    下面是项目二的代码 本代码我是留着备份学习的 以供参考:

    存储过程:

    存储过程:
    插入数据:
    CREATE OR REPLACE Procedure p_insert_t_cls --存储过程名称
    (
    p_stuid in CLASSES.ID%type,
    p_stuname in varchar
    )
    as
    BEGIN
    insert into classes
    values
    (p_stuid,p_stuname);
    commit;
    end;

    ===============================================
    删除 :(带返回参数)
    create or replace procedure proc_delete
    (
    isid in number , P_ROWS OUT NUMBER
    )
    is
    begin
    delete classes where id=isid;
    If SQL%Found Then
    DBMS_OUTPUT.PUT_LINE('删除成功!');
    P_ROWS := 1;
    Else
    DBMS_OUTPUT.PUT_LINE('删除失败!');
    P_ROWS := 0;
    End If;
    commit;
    end
    ;

    删除 : (不带返回参数)
    create or replace procedure p_delete_t_cls1(
    cla_id in Number
    )
    is
    begin
    DELETE FROM classes WHERE id = cla_id;
    commit;
    end p_delete_t_cls1;

    删除 : (不带返回参数)指定ID删除
    create or replace procedure p_delete_t_cls is
    begin
    DELETE FROM classes WHERE id = 7;
    commit;
    end p_delete_t_cls;
    ====================================================

    修改数据:(不带返回参数)
    create or replace procedure p_update_t_cls1(
    p_stuid in Number,
    p_stuname in Nvarchar2
    )
    is
    begin
    update classes x set x.classname = p_stuname where x.id = p_stuid;
    commit;
    end p_update_t_cls1;

    修改数据: :(带返回参数)

    create or replace procedure proc_update(
    p_stuid in Number,
    p_stuname in Nvarchar2,
    P_ROW out number
    )
    is
    begin
    update classes set classname = p_stuname where id = p_stuid;
    If SQL%Found Then
    DBMS_OUTPUT.PUT_LINE('更新成功!');
    P_ROW := 1;
    Else
    DBMS_OUTPUT.PUT_LINE('更新失败!');
    P_ROW := 0;
    End If;
    commit;
    end proc_update;

    修改数据: : (不带返回参数)指定ID修改
    create or replace procedure p_update_t_cls
    is
    begin
    update classes x set x.classname = '44' where x.id = 3;
    commit;
    end p_update_t_cls;

    ====================================================

    查询所有数据:(带返回参数 游标)
    CREATE OR REPLACE PACKAGE pkg_test1
    AS
    TYPE myrctype IS REF CURSOR;

    PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
    END pkg_test1 ;

    create or replace function testpro1 return types1.cursorType1 is
    lc1 types1.cursorType1;
    begin
    open lc1 for select id,classname from classes;
    return lc1;
    end testpro1;

    传递ID查询数据:(带返回参数 游标)传递ID查询数据
    create or replace package types as
    type cursorType is ref cursor;
    end;

    create or replace function testpro(IV IN NUMBER) return types.cursorType is
    lc types.cursorType;
    begin
    open lc for select * from test where ID=IV;
    return lc;
    end testpro;
    ====================================================

    代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OracleClient;

    namespace WindowsFormsApplication2_ceshi
    {
    public partial class form_ceshi : Form
    {
    public static String oradb = "Data Source=orcl;User ID=KEYPROJECTDATA;Password=KEYPROJECT;";
    OracleOP OracleOP = new OracleOP(oradb);
    public form_ceshi()
    {
    InitializeComponent();
    }

    private void btn_shanchu_Click(object sender, EventArgs e)
    {
    try
    {
    // 第一种方式
    //OracleConnection conn = new OracleConnection(oradb);
    //conn.Open();
    //int strid = Convert.ToInt32(txt_shanchuword.Text);
    //string strdeletebyid = "delete classes where id = " + strid;
    //int i = OracleOP.ExecuteSql(strdeletebyid.ToString());

    //// 第二种方式
    //OracleConnection conn = new OracleConnection(oradb);
    //conn.Open();
    //int strid = Convert.ToInt32(txt_shanchuword.Text);
    //OracleParameter[] param =
    //{
    // new OracleParameter("cla_id", OracleType.Int32)
    //};
    //param[0].Value = strid;
    ////string strdeletebyid = "p_delete_t_ceshiF_cls1";
    //int i = OracleOP.ExecuteProcedure("p_delete_t_ceshiF_cls1", param);
    //int i = OracleOP.ExecuteProcedure("PROC_DETELE_ID", param);


    // 第三种方式
    OracleConnection conn = new OracleConnection(oradb);
    conn.Open();
    int strid = Convert.ToInt32(txt_shanchuword.Text);
    OracleParameter[] param =
    {
    new OracleParameter("isid", OracleType.Int32)
    };
    param[0].Value = strid;
    //int i = OracleOP.ExecuteProcedure("PROC_DETELE_ID", param);

    int i = OracleOP.ExecuteProcedure("proc_delete", param);

    //int strid = Convert.ToInt32(txt_shanchuword.Text);
    //OracleConnection con = new OracleConnection(oradb);
    //OracleCommand orclCMD = new OracleCommand();
    //orclCMD.Connection = con;
    //orclCMD.CommandText = "proc_delete"; //存储过程名
    //orclCMD.CommandType = CommandType.StoredProcedure;//表面是存储过程 如果创建存储过程是有变量,所以还要声明变量
    //OracleParameter IdIn = orclCMD.Parameters.Add("isid", OracleType.Number); //输入参数

    //IdIn.Value = XXX;
    //OracleParameter IdIn1 = orclCMD.Parameters.Add("planid", OracleType.VarChar, 16); //输入参数
    //IdIn1.Direction = ParameterDirection.Input;
    //IdIn1.Value =XXX;
    //orclCMD.ExecuteNonQuery();
    //IdIn.Direction = ParameterDirection.Output;
    //int i = OracleOP.ExecuteProcedure("proc_delete", param);


    if (i > 0)
    {
    MessageBox.Show("删除成功!");
    }
    else if (i == 0)
    {
    MessageBox.Show("无此数据!");
    }
    else
    {
    MessageBox.Show("删除失败!");
    };
    conn.Dispose();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message.ToString());
    }
    finally
    {

    }
    }

    private void btn_xiugai_Click(object sender, EventArgs e)
    {
    try
    {
    //OracleConnection conn = new OracleConnection(oradb);
    //conn.Open();
    //int strid = Convert.ToInt32(txt_shanchuword.Text);
    //string strdeletebyid = "delete classes where id = " + strid;
    //int i = OracleOP.ExecuteSql(strdeletebyid.ToString());

    int strid = Convert.ToInt32(txt_xiugaiId_word.Text);
    string strword = txt_xiugaiword_word.Text;
    OracleParameter[] param =
    {
    new OracleParameter("p_stuid", OracleType.Number),
    new OracleParameter("p_stuname", OracleType.VarChar)
    };
    param[0].Value = strid;
    param[1].Value = strword;

    //string strdeletebyid = "p_delete_t_ceshiF_cls1";
    int i = OracleOP.ExecuteProcedure("p_update_t_ceshiF_cls1", param);

    //MessageBox.Show(""+i);
    if (i > 0)
    {
    MessageBox.Show("更新成功!");
    }
    else if (i == 0)
    {
    MessageBox.Show("无此更新数据!");
    }
    else
    {
    MessageBox.Show("更新失败!");
    };
    //conn.Dispose(); //Close()也可以。
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message.ToString());
    }
    finally
    {

    }
    }

    private void btn_all_Click(object sender, EventArgs e)
    {
    try
    {
    //// 这是执行oracle语句实现查询
    //string strQueryAll = "select * from classes";
    //DataSet ds = new DataSet();
    //ds = OracleOP.GetDataSet(strQueryAll);
    //dataGridView1.DataSource = ds.Tables[0];

    // GetDataSet
    string strQueryAll = "testpro2";
    //GetProcedure
    DataSet ds = new DataSet();
    ds = OracleOP.GetProcedure(strQueryAll, "classes", null);
    dataGridView1.DataSource = ds.Tables[0];
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message.ToString());
    }
    finally
    {

    }
    }
    }
    }

    =====================================================================================

  • 相关阅读:
    对文件上传使用表单验证
    文件上传
    自定义验证器
    WTForms常用的验证器
    Eclipse自动补全+常用快捷键
    JNI笔记
    cocos2d 2.2.6 win7下的配置
    cocos2d 3.6 win7下的配置
    python--文件删除、判断目录存在、字符串替换
    只是一个文件节点类为了项目的数据处理
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3386800.html
Copyright © 2011-2022 走看看