数据库的连接及三层结构中的业务层及数据处理层的编写
2008-11-23 00:03
239 查看
连接数据库:
Private Function getConnection() As OracleClient.OracleConnection
Dim cnStr As String
cnStr = AppSettings.Get(NBeFormConst.APPSETTINGS_KEY_NBeForm_CONNECTION_STRING)
Return New OracleClient.OracleConnection(cnStr)
End Function
业务层(对业务逻辑进行编写):
Function findformtype(ByVal formtypeid As String, ByVal formtypename As String) As NBeFormDataset Implements INBeFormService.findformtype ' BY apple
Dim cn As OracleClient.OracleConnection
Dim cd As INBeFormDAO
Dim ds2 As New NBeFormDataset
Dim dr2 As NBeFormDataset.EFORM_FORMTYPERow, dr3 As NBeFormDataset.EFORM_FORMTYPERow
Try
cn = getConnection()
cn.Open()
cd = DefaultDAOFactory.getInstance().getNBeFormDAO(cn)
dr2 = cd.findformtype(formtypeid, formtypename)
If Not dr2 Is Nothing Then
dr3 = ds2.EFORM_FORMTYPE.NewEFORM_FORMTYPERow
cd.copyDataRow(dr2, dr3)
ds2.EFORM_FORMTYPE.Rows.Add(dr3)
cd.fillDetails(ds2)
'mark as not changed
ds2.AcceptChanges()
End If
Return ds2
Finally
If Not cn Is Nothing Then
cn.Close()
cn = Nothing
End If
cd = Nothing
End Try
End Function
''''查找已设定的会签群组,写入会签人员。
Function SetPreCosignMember(ByVal DS As NBeFormDataset, ByVal TableName As String, ByVal FormTypeId As String, ByVal GROUPID As String) As NBeFormDataset Implements INBeFormService.SetPreCosignMember ''糶箇砞帽竤舱
Dim CS As INBeFormService
Dim DV As DataView
Dim i As Integer
Dim num As String
Dim sn As String
Dim DRSYSH As NBeFormDataset.EFORM_RSYS_HEADRow
Dim arr As String = ""
Dim sb0 As New StringBuilder
Dim end_role As String
Dim CS1 As INBeFormService
Dim DS1 As New NBeFormDataset
Dim DV1 As DataView
Dim COMID As String = WebUtil.GetCookieValue("NBeFormCompanyCookie", "COMPANY_ID")
Dim CS2 As INBeFormService
Dim DS2 As New NBeFormDataset
Dim DV2 As DataView
Dim j As Integer
Try
sb0.Append("SELECT * FROM EFORM_DECISION_COLUMN where FORMTYPE_ID= '" + FormTypeId + "' ")
DS1 = DefaultServiceFactory.getInstance.getNBeFormService.finddecisioncolumnBySql(sb0.ToString)
DV1 = New DataView(DS1.EFORM_DECISION_COLUMN)
If Not DV1 Is Nothing Then
For i = 0 To DV1.Count - 1
Dim decisionCol As String = DV1.Item(i).Row.Item("DECISION_COLUMN_ID").ToString
Dim decisionSn As String = DV1.Item(i).Row.Item("DECISION_SN").ToString
Dim DRFC As NBeFormDataset.EFORM_COLUMNRow
Dim sb As New StringBuilder
CS1 = New NBeFormServiceImpl
DRFC = CS1.findformcolumnBycolumnid(decisionCol)
If Not DRFC Is Nothing Then
'sb.Append("SELECT * FROM EFORM_MAF where ID= '" + id + "' ")
'DS1 = DefaultServiceFactory.getInstance.getNBeFormService.getQKFHbysql(sb.ToString)
DV = New DataView(DS.Tables(TableName))
num = DV.Item(0).Row.Item(decisionCol).ToString
End If
Dim sb2 As New StringBuilder
sb2.Append("SELECT * FROM EFORM_DECISION_NUMERICAL A where formtype_id='" + FormTypeId + "' and decision_sn='" + decisionSn + "' ")
DS2 = DefaultServiceFactory.getInstance.getNBeFormService.findFDNBySql(sb2.ToString)
DV2 = New DataView(DS2.EFORM_DECISION_NUMERICAL)
If Not DV2 Is Nothing Then
For j = 0 To DV2.Count - 1
If DV2.Item(j).Row.Item("DECISION_FROM").ToString = DV2.Item(j).Row.Item("DECISION_TO").ToString Then
If num = DV2.Item(j).Row.Item("DECISION_FROM").ToString Then
sn = DV2.Item(j).Row.Item("STANDARD_DECISION_SN").ToString
End If
ElseIf Convert.ToInt32(num) > Convert.ToInt32(DV2.Item(j).Row.Item("DECISION_FROM").ToString) And Convert.ToInt32(num) <= Convert.ToInt32(DV2.Item(j).Row.Item("DECISION_TO").ToString) Then
sn = DV2.Item(j).Row.Item("STANDARD_DECISION_SN").ToString
End If
If arr = "" Then
arr = sn
ElseIf Not InStr(arr, sn) > -1 Then
arr = arr & "_" & sn
End If
Next
End If
Next
End If
Dim A() As String
Dim x As String
Dim combsn As String
Dim m As Integer, n As Integer
Dim s As Integer
A = Split(arr, "_")
For m = 0 To UBound(A)
For n = 1 To UBound(A) - m
Do While A(m) > A(m + n) 'р程?程
x = A(m)
A(m) = A(m + n)
A(m + n) = x
Loop
Next n
Next m
'For s = 0 To UBound(A)
' If s = 0 Then
' combsn = A(s)
' Else
' combsn = combsn & "_" & A(s)
' End If
'Next
Dim CSS As INBeFormService
Dim DSS As New NBeFormDataset
Dim DSS1 As New NBeFormDataset
Dim HR_EMP As HRDataSet.HR_EMP_EFORMRow
Dim HR As New HrServiceImpl
Dim DR As NBeFormDataset.EFORM_GROUPMEMBERRow
Dim DRDEPT As HRDataSet.HR_DEPT_EFORMRow
Dim DRD As NBeFormDataset.EFORM_CATEGORY_COSIGN_GROUPSRow
Dim DMD As NBeFormDataset.EFORM_COSIGN_GROUP_MEMBERSRow
Dim DRMD As NBeFormDataset.EFORM_COSIGN_GROUPSRow
For s = 0 To UBound(A)
combsn = A(s)
CSS = New NBeFormServiceImpl
DSS = CSS.findCOSIGNDECISIONBysn(combsn, COMID)
For i = 0 To DSS.EFORM_CATEGORY_COSIGN_GROUPS.Count - 1
DRD = DSS.EFORM_CATEGORY_COSIGN_GROUPS.Rows(i)
DSS = CSS.findCosignGroupByKey(DRD.COUNTERSIGN_GROUP_ID, "", "")
For m = 0 To DSS.EFORM_COSIGN_GROUP_MEMBERS.Rows.Count - 1
DMD = DSS.EFORM_COSIGN_GROUP_MEMBERS.Rows(m)
DRMD = DSS.EFORM_COSIGN_GROUPS.Rows(0)
If DMD.IsFLAGNull Then
DR = DSS1.EFORM_GROUPMEMBER.NewEFORM_GROUPMEMBERRow
DR.ID = WebUtil.generateSequenceNumber(1)
HR_EMP = HR.findEmployeeByEmpNoComid(DMD.EMP_NO, DRMD.COMPANY_ID)
DR.GROUPID = GROUPID
DR.EMPNO = HR_EMP.EMP_NO
DR.UPDATEEMPNO = HR_EMP.NAME
DR.DEPT_NO = HR_EMP.DEPT_NO
DR.SIGNTYPE = HR_EMP.COMPANY_ID
DR.ACTION_SEQ = DMD.ACTION_SEQ
DR.APPROVAL_TYPE = DMD.APPROVAL_TYPE
DRDEPT = HrServiceFactory.getInstance().findDepartmentByDeptNo(HR_EMP.DEPT_NO, DR.SIGNTYPE)
DR.DEPT_NAME = DRDEPT.FULL_NAME
DSS1.EFORM_GROUPMEMBER.Rows.Add(DR)
End If
Next
CSS.OnlySave(DSS1)
Next
Next
Catch ex As Exception
Throw ex
Finally
DS1 = Nothing
CS1 = Nothing
DV1 = Nothing
CS2 = Nothing
DS2 = Nothing
End Try
End Function
数据操纵层的编写:
Public Class NBeFormDAOImpl : Inherits DAOBaseOracleSqlImpl : Implements INBeFormDAO
Public Sub New(ByVal cn As OracleClient.OracleConnection)
MyBase.New(cn)
End Sub
''对数据库的操作
Protected Friend Function fillQueryResult(ByRef ds As DataSet, ByVal tableName As String, ByVal sql As String) As Integer Implements IDAOBase.fillQueryResult
Dim scmd As OracleClient.OracleCommand
Dim param As OracleClient.OracleParameter
Dim adapter As OracleClient.OracleDataAdapter
Try
scmd = New OracleClient.OracleCommand(sql)
scmd.Connection = cn
If Not tn Is Nothing Then
scmd.Transaction = tn
End If
adapter = New OracleClient.OracleDataAdapter(scmd)
adapter.Fill(ds, tableName)
Return ds.Tables(tableName).Rows.Count
Finally
param = Nothing
scmd = Nothing
adapter = Nothing
End Try
End Function
End Class
Private Function getConnection() As OracleClient.OracleConnection
Dim cnStr As String
cnStr = AppSettings.Get(NBeFormConst.APPSETTINGS_KEY_NBeForm_CONNECTION_STRING)
Return New OracleClient.OracleConnection(cnStr)
End Function
业务层(对业务逻辑进行编写):
Function findformtype(ByVal formtypeid As String, ByVal formtypename As String) As NBeFormDataset Implements INBeFormService.findformtype ' BY apple
Dim cn As OracleClient.OracleConnection
Dim cd As INBeFormDAO
Dim ds2 As New NBeFormDataset
Dim dr2 As NBeFormDataset.EFORM_FORMTYPERow, dr3 As NBeFormDataset.EFORM_FORMTYPERow
Try
cn = getConnection()
cn.Open()
cd = DefaultDAOFactory.getInstance().getNBeFormDAO(cn)
dr2 = cd.findformtype(formtypeid, formtypename)
If Not dr2 Is Nothing Then
dr3 = ds2.EFORM_FORMTYPE.NewEFORM_FORMTYPERow
cd.copyDataRow(dr2, dr3)
ds2.EFORM_FORMTYPE.Rows.Add(dr3)
cd.fillDetails(ds2)
'mark as not changed
ds2.AcceptChanges()
End If
Return ds2
Finally
If Not cn Is Nothing Then
cn.Close()
cn = Nothing
End If
cd = Nothing
End Try
End Function
''''查找已设定的会签群组,写入会签人员。
Function SetPreCosignMember(ByVal DS As NBeFormDataset, ByVal TableName As String, ByVal FormTypeId As String, ByVal GROUPID As String) As NBeFormDataset Implements INBeFormService.SetPreCosignMember ''糶箇砞帽竤舱
Dim CS As INBeFormService
Dim DV As DataView
Dim i As Integer
Dim num As String
Dim sn As String
Dim DRSYSH As NBeFormDataset.EFORM_RSYS_HEADRow
Dim arr As String = ""
Dim sb0 As New StringBuilder
Dim end_role As String
Dim CS1 As INBeFormService
Dim DS1 As New NBeFormDataset
Dim DV1 As DataView
Dim COMID As String = WebUtil.GetCookieValue("NBeFormCompanyCookie", "COMPANY_ID")
Dim CS2 As INBeFormService
Dim DS2 As New NBeFormDataset
Dim DV2 As DataView
Dim j As Integer
Try
sb0.Append("SELECT * FROM EFORM_DECISION_COLUMN where FORMTYPE_ID= '" + FormTypeId + "' ")
DS1 = DefaultServiceFactory.getInstance.getNBeFormService.finddecisioncolumnBySql(sb0.ToString)
DV1 = New DataView(DS1.EFORM_DECISION_COLUMN)
If Not DV1 Is Nothing Then
For i = 0 To DV1.Count - 1
Dim decisionCol As String = DV1.Item(i).Row.Item("DECISION_COLUMN_ID").ToString
Dim decisionSn As String = DV1.Item(i).Row.Item("DECISION_SN").ToString
Dim DRFC As NBeFormDataset.EFORM_COLUMNRow
Dim sb As New StringBuilder
CS1 = New NBeFormServiceImpl
DRFC = CS1.findformcolumnBycolumnid(decisionCol)
If Not DRFC Is Nothing Then
'sb.Append("SELECT * FROM EFORM_MAF where ID= '" + id + "' ")
'DS1 = DefaultServiceFactory.getInstance.getNBeFormService.getQKFHbysql(sb.ToString)
DV = New DataView(DS.Tables(TableName))
num = DV.Item(0).Row.Item(decisionCol).ToString
End If
Dim sb2 As New StringBuilder
sb2.Append("SELECT * FROM EFORM_DECISION_NUMERICAL A where formtype_id='" + FormTypeId + "' and decision_sn='" + decisionSn + "' ")
DS2 = DefaultServiceFactory.getInstance.getNBeFormService.findFDNBySql(sb2.ToString)
DV2 = New DataView(DS2.EFORM_DECISION_NUMERICAL)
If Not DV2 Is Nothing Then
For j = 0 To DV2.Count - 1
If DV2.Item(j).Row.Item("DECISION_FROM").ToString = DV2.Item(j).Row.Item("DECISION_TO").ToString Then
If num = DV2.Item(j).Row.Item("DECISION_FROM").ToString Then
sn = DV2.Item(j).Row.Item("STANDARD_DECISION_SN").ToString
End If
ElseIf Convert.ToInt32(num) > Convert.ToInt32(DV2.Item(j).Row.Item("DECISION_FROM").ToString) And Convert.ToInt32(num) <= Convert.ToInt32(DV2.Item(j).Row.Item("DECISION_TO").ToString) Then
sn = DV2.Item(j).Row.Item("STANDARD_DECISION_SN").ToString
End If
If arr = "" Then
arr = sn
ElseIf Not InStr(arr, sn) > -1 Then
arr = arr & "_" & sn
End If
Next
End If
Next
End If
Dim A() As String
Dim x As String
Dim combsn As String
Dim m As Integer, n As Integer
Dim s As Integer
A = Split(arr, "_")
For m = 0 To UBound(A)
For n = 1 To UBound(A) - m
Do While A(m) > A(m + n) 'р程?程
x = A(m)
A(m) = A(m + n)
A(m + n) = x
Loop
Next n
Next m
'For s = 0 To UBound(A)
' If s = 0 Then
' combsn = A(s)
' Else
' combsn = combsn & "_" & A(s)
' End If
'Next
Dim CSS As INBeFormService
Dim DSS As New NBeFormDataset
Dim DSS1 As New NBeFormDataset
Dim HR_EMP As HRDataSet.HR_EMP_EFORMRow
Dim HR As New HrServiceImpl
Dim DR As NBeFormDataset.EFORM_GROUPMEMBERRow
Dim DRDEPT As HRDataSet.HR_DEPT_EFORMRow
Dim DRD As NBeFormDataset.EFORM_CATEGORY_COSIGN_GROUPSRow
Dim DMD As NBeFormDataset.EFORM_COSIGN_GROUP_MEMBERSRow
Dim DRMD As NBeFormDataset.EFORM_COSIGN_GROUPSRow
For s = 0 To UBound(A)
combsn = A(s)
CSS = New NBeFormServiceImpl
DSS = CSS.findCOSIGNDECISIONBysn(combsn, COMID)
For i = 0 To DSS.EFORM_CATEGORY_COSIGN_GROUPS.Count - 1
DRD = DSS.EFORM_CATEGORY_COSIGN_GROUPS.Rows(i)
DSS = CSS.findCosignGroupByKey(DRD.COUNTERSIGN_GROUP_ID, "", "")
For m = 0 To DSS.EFORM_COSIGN_GROUP_MEMBERS.Rows.Count - 1
DMD = DSS.EFORM_COSIGN_GROUP_MEMBERS.Rows(m)
DRMD = DSS.EFORM_COSIGN_GROUPS.Rows(0)
If DMD.IsFLAGNull Then
DR = DSS1.EFORM_GROUPMEMBER.NewEFORM_GROUPMEMBERRow
DR.ID = WebUtil.generateSequenceNumber(1)
HR_EMP = HR.findEmployeeByEmpNoComid(DMD.EMP_NO, DRMD.COMPANY_ID)
DR.GROUPID = GROUPID
DR.EMPNO = HR_EMP.EMP_NO
DR.UPDATEEMPNO = HR_EMP.NAME
DR.DEPT_NO = HR_EMP.DEPT_NO
DR.SIGNTYPE = HR_EMP.COMPANY_ID
DR.ACTION_SEQ = DMD.ACTION_SEQ
DR.APPROVAL_TYPE = DMD.APPROVAL_TYPE
DRDEPT = HrServiceFactory.getInstance().findDepartmentByDeptNo(HR_EMP.DEPT_NO, DR.SIGNTYPE)
DR.DEPT_NAME = DRDEPT.FULL_NAME
DSS1.EFORM_GROUPMEMBER.Rows.Add(DR)
End If
Next
CSS.OnlySave(DSS1)
Next
Next
Catch ex As Exception
Throw ex
Finally
DS1 = Nothing
CS1 = Nothing
DV1 = Nothing
CS2 = Nothing
DS2 = Nothing
End Try
End Function
数据操纵层的编写:
Public Class NBeFormDAOImpl : Inherits DAOBaseOracleSqlImpl : Implements INBeFormDAO
Public Sub New(ByVal cn As OracleClient.OracleConnection)
MyBase.New(cn)
End Sub
''对数据库的操作
Protected Friend Function fillQueryResult(ByRef ds As DataSet, ByVal tableName As String, ByVal sql As String) As Integer Implements IDAOBase.fillQueryResult
Dim scmd As OracleClient.OracleCommand
Dim param As OracleClient.OracleParameter
Dim adapter As OracleClient.OracleDataAdapter
Try
scmd = New OracleClient.OracleCommand(sql)
scmd.Connection = cn
If Not tn Is Nothing Then
scmd.Transaction = tn
End If
adapter = New OracleClient.OracleDataAdapter(scmd)
adapter.Fill(ds, tableName)
Return ds.Tables(tableName).Rows.Count
Finally
param = Nothing
scmd = Nothing
adapter = Nothing
End Try
End Function
End Class
相关文章推荐
- C#通过三层连接数据库编写QQ(二)(含资源)
- 三层结构与数据库的连接字符串帮助类
- C# 三层结构中提取config文件中的数据库连接字符串
- ADO.NET的结构,提供程序和数据连接,执行数据库命令Command对象
- Sharepoint 2007 BDC(业务数据目录)连接数据库,并绑定到业务数据列表上显示数据
- Sharp-ORM 自动将数据库封装成对象的生成器,三层数据访问结构
- 将业务系统数据库的数据显示在页面上并且作WebPart的跨页面连接
- C#------各种数据库连接字符串编写
- 使用递归算法结合数据库解析成java树形结构 1、准备表结构及对应的表数据 a、表结构: create table TB_TREE ( CID NUMBER not null, CNAME VAR
- PHP连接MySQL数据库及以表格输出数据库数据的实现
- 简单的jsp连接数据库,并输出数据
- 练习题——Gson解析、利用JDBC连接数据库进行数据的存取及查询等的综合
- java学习干货之jdbc连接与编写数据库的工具类
- js 连接数据库如何操作数据库中的数据
- C#实现杀掉MSSQL中数据库当前连接的所有进程(进行数据还原的时候需要用到)
- 在数据库重启之后无法重新连接数据,无法正常提供服务问题解决
- C#GUI编程学习之ComboBox控件篇1--连接数据库并传递数据到文本框
- 计算机网络,操作系统,数据结构,算法设计,计算机组成原理,数据库,概率论 零散知识库
- Windows 8 Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现