⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clscsharpcoder.cls

📁 一个由VB开发的。NET实体生成器` 提高.net代码质量及开发效率
💻 CLS
📖 第 1 页 / 共 3 页
字号:
                
                '有条件批量更新
                Codes = Codes & vbTab & vbTab & "/// <summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// 有条件批量更新" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// <param name=" & Chr(34) & "spc" & Chr(34) & ">设置参数集</param>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// <param name=" & Chr(34) & "qpc" & Chr(34) & ">检索参数集</param>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// </summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "public void Update(SetParamsCollection spc, QueryParamsCollection qpc)" & vbCrLf
                Codes = Codes & vbTab & vbTab & "{" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "SqlCommand Cmd = BuildCommand(" & Chr(34) & "UPDATE [" & ObjectName & "] " & Chr(34) & " + spc.ToString() + qpc.ToString());" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "Cmd.ExecuteNonQuery();" & vbCrLf
                Codes = Codes & vbTab & vbTab & "}" & vbCrLf
                Codes = Codes & vbCrLf
                Codes = Codes & vbCrLf
                
                '无条件批量更新
                Codes = Codes & vbTab & vbTab & "/// <summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// 无条件批量更新" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// <param name=" & Chr(34) & "spc" & Chr(34) & ">设置参数集</param>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// </summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "public void Update(SetParamsCollection spc)" & vbCrLf
                Codes = Codes & vbTab & vbTab & "{" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "Update(spc,new QueryParamsCollection());" & vbCrLf
                Codes = Codes & vbTab & vbTab & "}" & vbCrLf
                Codes = Codes & vbCrLf
                Codes = Codes & vbCrLf
                
                '有条件批量删除
                Codes = Codes & vbTab & vbTab & "/// <summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// 有条件批量删除" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// <param name=" & Chr(34) & "pqc" & Chr(34) & ">检索参数集</param>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// </summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "public void Delete(QueryParamsCollection pqc)" & vbCrLf
                Codes = Codes & vbTab & vbTab & "{" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "SqlCommand Cmd = BuildCommand(" & Chr(34) & "DELETE FROM [" & ObjectName & "] " & Chr(34) & " + pqc.ToString());" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "Cmd.ExecuteNonQuery();" & vbCrLf
                Codes = Codes & vbTab & vbTab & "}" & vbCrLf
                Codes = Codes & vbCrLf
                Codes = Codes & vbCrLf
                
                '无条件批量删除
                Codes = Codes & vbTab & vbTab & "/// <summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// 无条件批量删除" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// </summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "public void Delete()" & vbCrLf
                Codes = Codes & vbTab & vbTab & "{" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "Delete(new QueryParamsCollection());" & vbCrLf
                Codes = Codes & vbTab & vbTab & "}" & vbCrLf
                Codes = Codes & vbCrLf
                Codes = Codes & vbCrLf
                
                '无条件批量删除
                Codes = Codes & vbTab & vbTab & "/// <summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// 按ID分割批量删除" & vbCrLf
                Codes = Codes & vbTab & vbTab & "/// </summary>" & vbCrLf
                Codes = Codes & vbTab & vbTab & "public void DeleteSplitedIDs(string splitedIDs)" & vbCrLf
                Codes = Codes & vbTab & vbTab & "{" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "SqlCommand Cmd = BuildCommand(" & Chr(34) & "DELETE FROM [" & ObjectName & "] WHERE " & ID & " in (" & Chr(34) & " + splitedIDs + " & Chr(34) & ")" & Chr(34) & ");" & vbCrLf
                Codes = Codes & vbTab & vbTab & vbTab & "Cmd.ExecuteNonQuery();" & vbCrLf
                Codes = Codes & vbTab & vbTab & "}" & vbCrLf
                Codes = Codes & vbCrLf
                Codes = Codes & vbCrLf
                
            Codes = Codes & vbTab & "}" & vbCrLf '类结束
        Codes = Codes & "}" & vbCrLf
        '保存 操作类 文件
        Call SaveFile(EntityBasePath & "\" & strName & "Base.cs", Codes)
        
        '新建扩展操作类
        Dim MakeHasCanceled As Boolean
        MakeHasCanceled = False
        RaiseEvent MakingExtends(MakeHasCanceled)
        If MakeHasCanceled = False Then
            Codes = Empty
            Codes = Codes & "using System;" & vbCrLf
            Codes = Codes & "using System.Collections;" & vbCrLf
            Codes = Codes & "using System.Data;" & vbCrLf
            If adtAdoType = OleDb Then
                Conn = "System.Data.OleDb.OleDbConnection"
                Codes = Codes & "using System.Data.OleDb;" & vbCrLf
            Else
                Conn = "System.Data.SqlClient.SqlConnection"
                Codes = Codes & "using System.Data.SqlClient;" & vbCrLf
            End If
            
            Codes = Codes & "using " & sNameSpace & "DataAS.Base;" & vbCrLf
            Codes = Codes & "using " & sNameSpace & "DataAS.Details;" & vbCrLf
            Codes = Codes & "using " & sNameSpace & "DataAS.EntityBase;" & vbCrLf
            Codes = Codes & vbCrLf
            Codes = Codes & "namespace " & sNameSpace & "DataAS" & vbCrLf
            Codes = Codes & "{" & vbCrLf
                Codes = Codes & vbTab & "public class " & ClassName & " : " & ClassName & "Base" & vbCrLf
                Codes = Codes & vbTab & "{" & vbCrLf    '类开始
                    '操作类构造函数
                    Codes = Codes & vbTab & vbTab & "public " & ClassName & "(){}" & vbCrLf
                    Codes = Codes & vbTab & vbTab & vbCrLf
    
                    Codes = Codes & vbTab & vbTab & "public " & ClassName & "(string ConnString):base(ConnString){}" & vbCrLf
                    Codes = Codes & vbTab & vbTab & vbCrLf
                    
                    Codes = Codes & vbTab & vbTab & "public " & ClassName & "(" & Conn & " Connection):base(Connection){}" & vbCrLf
                    Codes = Codes & vbTab & vbTab & vbCrLf
                Codes = Codes & vbTab & "}" & vbCrLf    '类开始
            Codes = Codes & "}" & vbCrLf
            '保存 扩展操作类 文件
            Call SaveFile(Path & "\" & strName & ".cs", Codes)
        End If
        
        If adtAdoType = OleDb Then
            CodeFileCopy App.Path & "\DAL_BASE\DbObject_OleDb.cs", BasePath & "\DbObject.cs"
        ElseIf adtAdoType = Sql Then
            CodeFileCopy App.Path & "\DAL_BASE\DbObject_Sql.cs", BasePath & "\DbObject.cs"
        End If
        
        CodeFileCopy App.Path & "\DAL_BASE\QPCAbout.cs", QPCPath & "\QPCAbout.cs"
        CodeFileCopy App.Path & "\DAL_BASE\QueryParameter.cs", QPCPath & "\QueryParameter.cs"
        CodeFileCopy App.Path & "\DAL_BASE\QueryParamsCollection.cs", QPCPath & "\QueryParamsCollection.cs"
        
        CodeFileCopy App.Path & "\DAL_BASE\SPCAbout.cs", SPCPath & "\SPCAbout.cs"
        CodeFileCopy App.Path & "\DAL_BASE\SetParameter.cs", SPCPath & "\SetParameter.cs"
        CodeFileCopy App.Path & "\DAL_BASE\SetParamsCollection.cs", SPCPath & "\SetParamsCollection.cs"
        
        RaiseEvent ClassExported(ClassName)
        RaiseEvent ExportStep(i + 1)
    Next i
    
    RaiseEvent ExportCompleted
End Sub

Public Sub CodeFileCopy(ByVal SrcPath As String, ByVal TargetPath As String)
    Dim filenumber As Long
    Dim srcContents() As Byte, outputDatas() As Byte
    Dim Text As String
    
    filenumber = FreeFile
    ReDim srcContents(FileLen(SrcPath))
    Open SrcPath For Binary As #filenumber
        Get #filenumber, , srcContents
    Close #filenumber
    
    Text = Replace(StrConv(srcContents, vbUnicode), "{namespace}.", sNameSpace)
    
    outputDatas = StrConv(Text, vbFromUnicode)
    
    filenumber = FreeFile
    Open TargetPath For Binary As #filenumber
        Put #filenumber, , outputDatas
    Close #filenumber
End Sub

Private Function GetCSharpType(ByVal TypeText As String) As String
    Select Case LCase(TypeText)
        Case "int"
            GetCSharpType = "Convert.ToInt32"
        Case "long"
            GetCSharpType = "Convert.ToInt64"
        Case "bool"
            GetCSharpType = "Convert.ToBoolean"
        Case "float"
            GetCSharpType = "Convert.ToSingle"
        Case "string"
            GetCSharpType = "Convert.ToString"
        Case "datetime"
            GetCSharpType = "Convert.ToDateTime"
        Case "money"
            GetCSharpType = "Convert.ToDouble"
        Case "text"
            GetCSharpType = "Convert.ToString"
    End Select
End Function

Private Function GetType(ByVal TypeText As String) As String
    If adtAdoType = OleDb Then
        Select Case LCase(TypeText)
            Case "int"
                GetType = AdoName & "Type.Integer"
            Case "long"
                GetType = AdoName & "Type.BigInt"
            Case "bool"
                GetType = AdoName & "Type.Boolean"
            Case "float"
                GetType = AdoName & "Type.Single"
            Case "string"
                GetType = AdoName & "Type.VarChar"
            Case "datetime"
                GetType = AdoName & "Type.Date"
            Case "money"
                GetType = AdoName & "Type.Currency"
            Case "text"
                GetType = AdoName & "Type.VarChar"
        End Select
    ElseIf adtAdoType = Sql Then
        Select Case LCase(TypeText)
            Case "int"
                GetType = AdoName & "DbType.Int"
            Case "long"
                GetType = AdoName & "DbType.BigInt"
            Case "bool"
                GetType = AdoName & "DbType.Bit"
            Case "float"
                GetType = AdoName & "DbType.Float"
            Case "string"
                GetType = AdoName & "DbType.NVarChar"
            Case "datetime"
                GetType = AdoName & "DbType.DateTime"
            Case "money"
                GetType = AdoName & "DbType.Money"
            Case "text"
                GetType = AdoName & "DbType.Text"
        End Select
    End If
End Function

Private Sub SaveFile(ByVal FilePath As String, ByVal Contents As String)
    Open FilePath For Output As #1
        Print #1, Contents
    Close #1
End Sub

Private Function GetClassName(ByVal strName As String) As String
    GetClassName = UCase(Left(strName, 1)) & Right(strName, Len(strName) - 1)
End Function

Private Function GetObjectName(ByVal strName As String) As String
    GetObjectName = LCase(Left(strName, 1)) & Right(strName, Len(strName) - 1)
End Function

Private Function FilterToCSharp(ByVal AdoType As String) As String
    '将Ado.net 数据类型转换为 C#类型
    Select Case AdoType
        Case "text"
            FilterToCSharp = "string"
        Case Else
            FilterToCSharp = AdoType
    End Select
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -