首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

分享,Oracle存储过程+.NET(c#)+微软企业库的示范(添加修改删除,缺列表等)

2013-03-26 
分享,Oracle存储过程+.NET(c#)+微软企业库的示例(添加修改删除,缺列表等)刚入手Oracle,存储过程和sqlserve

分享,Oracle存储过程+.NET(c#)+微软企业库的示例(添加修改删除,缺列表等)
刚入手Oracle,存储过程和sqlserver的区别好大啊,折腾了半天也不清楚,发帖得当好多好心人大师们的帮助,实在感激啊

为了给刚入门的好朋友们一点小小的指引,现把我折腾成功的关于“添加、修改、删除”的示例show一下,
[color=#FF0000]目前还缺少列表GetList()、展示GetModel()以及验证Exists()的,欢迎大师们提供[/color]!

web层:
 

C# code
 //添加            //数据填充            SystemCodeModel SystemCodeModel = new SystemCodeModel();            SystemCodeModel.CodeLb = this.txtCodeLb.Text;            SystemCodeModel.LbName = this.txtLbName.Text;            SystemCodeModel.CodeValue = this.txtCodeValue.Text;            SystemCodeModel.CodeName = this.txtCodeName.Text;            //调用BLL层Add            SystemCodeBLL.Add(SystemCodeModel);//修改:            //数据填充            SystemCodeModel SystemCodeModel = new SystemCodeModel();            SystemCodeModel.CodeLb = this.txtCodeLb.Text;            SystemCodeModel.LbName = this.txtLbName.Text;            SystemCodeModel.CodeValue = this.txtCodeValue.Text;            SystemCodeModel.CodeName = this.txtCodeName.Text;            //调用BLL层Update            SystemCodeBLL.Update(SystemCodeModel);


//删除:
C# code
    //删除事件    protected void GVList_RowDeleting(object sender, GridViewDeleteEventArgs e)    {        string CodeLb = this.GVList.DataKeys[e.RowIndex].Values[0].ToString();        string CodeValue = this.GVList.DataKeys[e.RowIndex].Values[1].ToString();        SystemCodeBLL.Delete(CodeLb, CodeValue);        //删除完之后重新绑定        this.Init_Data(ViewState["CodeLb"] == null ? "" : ViewState["CodeLb"].ToString());    }


BLL层:
C# code
// 新增        public void Add(SystemCodeModel Model)        {            DAL.Add(Model);        }        //修改        public void Update(SystemCodeModel Model)        {            DAL.Update(Model);        }        //删除        public void Delete(string CodeLb, string CodeValue)        {            DAL.Delete(CodeLb, CodeValue);        }

DAL层:
C# code
//引用微软企业库using Microsoft.Practices.EnterpriseLibrary.Data;using Microsoft.Practices.EnterpriseLibrary.Common;        //建立数据库访问类        Database db = DatabaseFactory.CreateDatabase();        // 新增        public void Add(SystemCodeModel Model)        {            System.Data.Common.DbCommand sqlCommand = db.GetStoredProcCommand("SystemCode_ADD");            db.AddInParameter(sqlCommand, "CodeLb_in", DbType.String, Model.CodeLb);            db.AddInParameter(sqlCommand, "LbName_in", DbType.String, Model.LbName);            db.AddInParameter(sqlCommand, "CodeValue_in", DbType.String, Model.CodeValue);            db.AddInParameter(sqlCommand, "CodeName_in", DbType.String, Model.CodeName);            db.ExecuteNonQuery(sqlCommand);        }        //修改        public void Update(SystemCodeModel Model)        {            System.Data.Common.DbCommand sqlCommand = db.GetStoredProcCommand("SystemCode_Update");            db.AddInParameter(sqlCommand, "CodeLb_in", DbType.String, Model.CodeLb);            db.AddInParameter(sqlCommand, "LbName_in", DbType.String, Model.LbName);            db.AddInParameter(sqlCommand, "CodeValue_in", DbType.String, Model.CodeValue);            db.AddInParameter(sqlCommand, "CodeName_in", DbType.String, Model.CodeName);            db.ExecuteNonQuery(sqlCommand);        }        //删除        public void Delete(string CodeLb, string CodeValue)        {            System.Data.Common.DbCommand sqlCommand = db.GetStoredProcCommand("SystemCode_Delete");            db.AddInParameter(sqlCommand, "CodeLb_in", DbType.String, CodeLb);            db.AddInParameter(sqlCommand, "CodeValue_in", DbType.String, CodeValue);            db.ExecuteNonQuery(sqlCommand);        } 




Oracle存储过程:
SQL code
 
//添加:
CREATE OR REPLACE  PROCEDURE SYSTEMCODE_ADD ( 
    Codelb_in varchar2 ,
      LbName_in varchar2 ,
      CodeValue_in varchar2 ,
      CodeName_in varchar2 )
      AS
begin
INSERT into  Systemcode  (Codelb,LbName,CodeValue,CodeName)
  values(Codelb_in,LbName_in,CodeValue_in,CodeName_in);
end SystemCode_ADD;

//修改:
CREATE OR REPLACE  PROCEDURE SYSTEMCODE_Update
/*---Update更新code代码表---*/
(CODELB_in VARCHAR2,
LBNAME_in VARCHAR2,
CODEVALUE_in VARCHAR2,
CODENAME_in VARCHAR2
)
AS
BEGIN
UPDATE SYSTEMCODE SET
LBNAME = LBNAME_in ,CODENAME = CODENAME_in
WHERE  CODELB = CODELB_in and CODEVALUE = CODEVALUE_in;
end SYSTEMCODE_Update;
/

//删除
CREATE OR REPLACE  PROCEDURE SystemCode_Delete
/*---Delete删除code代码表---*/
(Codelb_in varchar2,
CodeValue_in varchar2
)
AS
begin
Delete  From Systemcode
WHERE  Codelb= Codelb_in  and CodeValue= CodeValue_in;
end SystemCode_Delete;
/

commit;


[解决办法]
探讨
目前我对于列表等采用的是直接在程序中写sql语句,没有用存储过程,如果有存储过程的,欢迎提供啊
DAL层:

C# code//得到列表
public DataSet GetList(string CodeLb)
{
string strSql = "select * FROM SystemCode";
if (CodeLb != null && CodeLb.Trim() != "")
{
strSql += " where CodeLb='" + CodeLb + "'";
}


[解决办法]
CREATE OR REPLACE PROCEDURE SYSTEMCODE_EXISTS ( 
CODELB_in VARCHAR2, 
CodeValue_in VARCHAR2, 
count_row out number(5) -->这里没有定义长度

AS 
TempID Number; 
BEGIN 
..............
END SYSTEMCODE_EXISTS; -->这里

试试看

[解决办法]
不容易哦,支持楼主
[解决办法]
up
[解决办法]
探讨
不容易哦,支持楼主

[解决办法]
过程会写,在c#中调用就不会啦,幸好有人分享好东东。
[解决办法]
支持。做个记号
[解决办法]
学习

热点排行