分享,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;
[解决办法]
[解决办法]
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#中调用就不会啦,幸好有人分享好东东。
[解决办法]
支持。做个记号
[解决办法]
学习