📄 clsllblgenerator.cs
字号:
swBaseClass.WriteLine("\t\t\t\t\tIf " + PrefixMemberVar("MainConnectionIsCreatedLocal","b") + " Then");
swBaseClass.WriteLine("\t\t\t\t\t\t' // Object is created in this class, so destroy it here.");
swBaseClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Close()");
swBaseClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Dispose()");
swBaseClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("MainConnectionIsCreatedLocal","b") + " = True");
swBaseClass.WriteLine("\t\t\t\t\tEnd If");
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnectionProvider","cp") + " = Nothing");
}
else
{
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection","sco") + ".Dispose()");
}
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection","sco") + " = Nothing");
swBaseClass.WriteLine("\t\t\t\tEnd If");
swBaseClass.WriteLine("\t\t\tEnd If");
swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("IsDisposed","b") + " = True");
if(m_bNETIncludeCOMPlusSupport)
{
swBaseClass.WriteLine("\t\t\tMyBase.Dispose(True)");
}
swBaseClass.WriteLine("\t\tEnd Sub");
swBaseClass.WriteLine(Environment.NewLine);
// Implementation of overridable ICommonDBAccess methods
// ::Insert()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t' /// <summary>");
swBaseClass.WriteLine("\t\t' /// Purpose: Implements the ICommonDBAccess.Insert() method.");
swBaseClass.WriteLine("\t\t' /// </summary>");
}
swBaseClass.WriteLine("\t\tPublic Overridable Function Insert() As Boolean Implements ICommonDBAccess.Insert");
swBaseClass.WriteLine("\t\t\t' // No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tThrow New NotImplementedException()");
swBaseClass.WriteLine("\t\tEnd Function");
swBaseClass.WriteLine(Environment.NewLine);
// ::Delete()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t' /// <summary>");
swBaseClass.WriteLine("\t\t' /// Purpose: Implements the ICommonDBAccess.Delete() method.");
swBaseClass.WriteLine("\t\t' /// </summary>");
}
swBaseClass.WriteLine("\t\tPublic Overridable Function Delete() As Boolean Implements ICommonDBAccess.Delete");
swBaseClass.WriteLine("\t\t\t' // No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tThrow New NotImplementedException()");
swBaseClass.WriteLine("\t\tEnd Function");
swBaseClass.WriteLine(Environment.NewLine);
// ::Update()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t' /// <summary>");
swBaseClass.WriteLine("\t\t' /// Purpose: Implements the ICommonDBAccess.Update() method.");
swBaseClass.WriteLine("\t\t' /// </summary>");
}
swBaseClass.WriteLine("\t\tPublic Overridable Function Update() As Boolean Implements ICommonDBAccess.Update");
swBaseClass.WriteLine("\t\t\t' // No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tThrow New NotImplementedException()");
swBaseClass.WriteLine("\t\tEnd Function");
swBaseClass.WriteLine(Environment.NewLine);
// ::SelectOne()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t' /// <summary>");
swBaseClass.WriteLine("\t\t' /// Purpose: Implements the ICommonDBAccess.SelectOne() method.");
swBaseClass.WriteLine("\t\t' /// </summary>");
}
swBaseClass.WriteLine("\t\tPublic Overridable Function SelectOne() As DataTable Implements ICommonDBAccess.SelectOne");
swBaseClass.WriteLine("\t\t\t' // No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tThrow New NotImplementedException()");
swBaseClass.WriteLine("\t\tEnd Function");
swBaseClass.WriteLine(Environment.NewLine);
// ::SelectAll()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t' /// <summary>");
swBaseClass.WriteLine("\t\t' /// Purpose: Implements the ICommonDBAccess.SelectAll() method.");
swBaseClass.WriteLine("\t\t' /// </summary>");
}
swBaseClass.WriteLine("\t\tPublic Overridable Function SelectAll() As DataTable Implements ICommonDBAccess.SelectAll");
swBaseClass.WriteLine("\t\t\t' // No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tThrow New NotImplementedException()");
swBaseClass.WriteLine("\t\tEnd Function");
swBaseClass.WriteLine(Environment.NewLine);
// Properties
bool bWriteWhiteSpace = false;
swBaseClass.WriteLine("#Region \" Class Property Declarations \"" + Environment.NewLine);
if(m_bNETIncludeConnectionProviderSupport)
{
swBaseClass.WriteLine("\t\tPublic WriteOnly Property " + PrefixProperty("MainConnectionProvider", "cp") + "() As " + m_sNETClassPrefix + "ConnectionProvider");
swBaseClass.WriteLine("\t\t\tSet(ByVal Value As " + m_sNETClassPrefix + "ConnectionProvider)");
swBaseClass.WriteLine("\t\t\t\tIf Value Is Nothing Then");
swBaseClass.WriteLine("\t\t\t\t\t' // Invalid value");
swBaseClass.WriteLine("\t\t\t\t\tThrow New ArgumentNullException(\"" + PrefixProperty("MainConnectionProvider", "cp") + "\", \"Nothing passed as value to this property which is not allowed.\")");
swBaseClass.WriteLine("\t\t\t\tEnd If" + Environment.NewLine);
swBaseClass.WriteLine("\t\t\t\t' // A connection provider object is passed to this class.");
swBaseClass.WriteLine("\t\t\t\t' // Retrieve the SqlConnection object, if present and create a");
swBaseClass.WriteLine("\t\t\t\t' // reference to it. If there is already a MainConnection object");
swBaseClass.WriteLine("\t\t\t\t' // referenced by the membervar, destroy that one or simply ");
swBaseClass.WriteLine("\t\t\t\t' // remove the reference, based on the flag.");
swBaseClass.WriteLine("\t\t\t\tIf Not (" + PrefixMemberVar("MainConnection", "sco") + " Is Nothing) Then");
swBaseClass.WriteLine("\t\t\t\t\t' // First get rid of current connection object. Caller is responsible");
swBaseClass.WriteLine("\t\t\t\t\tIf " + PrefixMemberVar("MainConnectionIsCreatedLocal", "b") + " Then");
swBaseClass.WriteLine("\t\t\t\t\t\t' // Is local created object, close it and dispose it.");
swBaseClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Close()");
swBaseClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Dispose()");
swBaseClass.WriteLine("\t\t\t\t\tEnd If");
swBaseClass.WriteLine("\t\t\t\t\t' // Remove reference.");
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + " = Nothing");
swBaseClass.WriteLine("\t\t\t\tEnd If");
swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnectionProvider","cp") + " = CType(Value, " + m_sNETClassPrefix + "ConnectionProvider)");
swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + " = " + PrefixMemberVar("MainConnectionProvider","cp") + "." + PrefixProperty("DBConnection", "sco") + "");
swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnectionIsCreatedLocal", "b") + " = False");
swBaseClass.WriteLine("\t\t\tEnd Set");
swBaseClass.WriteLine("\t\tEnd Property");
bWriteWhiteSpace = true;
}
if(m_bSPIncludeErrorCodeSupport)
{
if(bWriteWhiteSpace)
{
swBaseClass.WriteLine(Environment.NewLine);
bWriteWhiteSpace=false;
}
swBaseClass.WriteLine("\t\tPublic ReadOnly Property " + PrefixProperty("ErrorCode","i") + "() As SqlInt32");
swBaseClass.WriteLine("\t\t\tGet");
swBaseClass.WriteLine("\t\t\t\tReturn " + PrefixMemberVar("ErrorCode", "i"));
swBaseClass.WriteLine("\t\t\tEnd Get");
swBaseClass.WriteLine("\t\tEnd Property");
bWriteWhiteSpace = true;
}
if(m_iNETConnectionStringRetrieval != (int)eConnectionStringRetrieval.AppConfig)
{
if(bWriteWhiteSpace)
{
swBaseClass.WriteLine(Environment.NewLine);
bWriteWhiteSpace=false;
}
swBaseClass.WriteLine("\t\tPublic Property " + PrefixProperty("ConnectionString","s") + "() As String");
swBaseClass.WriteLine("\t\t\tGet");
swBaseClass.WriteLine("\t\t\t\tReturn " + PrefixMemberVar("ConnectionString", "s"));
swBaseClass.WriteLine("\t\t\tEnd Get");
swBaseClass.WriteLine("\t\t\tSet (ByVal Value As String)");
swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("ConnectionString", "s") + " = Value");
swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".ConnectionString = " +
PrefixMemberVar("ConnectionString", "s"));
swBaseClass.WriteLine("\t\t\tEnd Set");
swBaseClass.WriteLine("\t\tEnd Property");
}
swBaseClass.WriteLine(Environment.NewLine + "#End Region" + Environment.NewLine);
swBaseClass.WriteLine("\tEnd Class");
swBaseClass.WriteLine("End Namespace");
swBaseClass.Close();
}
/// <summary>
/// Purpose: writes the C# ConnectionProvider class which is used to pass along a SqlConnection object
/// to data-access tier objects so more than 1 database action can be done over 1 open SqlConnection and thus
/// inside 1 ADO.NET transaction
/// </summary>
private void WriteCSConnectionProviderClass()
{
string sCPClassFile = m_sNETOutputPath + m_sNETClassPrefix + "ConnectionProvider.cs";
if(File.Exists(sCPClassFile))
{
// remove the file.
File.Delete(sCPClassFile);
}
// write the file
StreamWriter swCPClass = new StreamWriter(sCPClassFile);
if(m_bNETIncludeComments)
{
swCPClass.WriteLine("///////////////////////////////////////////////////////////////////////////");
swCPClass.WriteLine("// Description: Connection Provider class for Database connection sharing ");
swCPClass.WriteLine("// Generated by LLBLGen v" + m_wMainWindow.sAppVersion + " on: " + DateTime.Now.ToLongDateString() + ", " + DateTime.Now.ToLongTimeString());
swCPClass.WriteLine("// This class implements IDisposable.");
swCPClass.WriteLine("///////////////////////////////////////////////////////////////////////////");
}
swCPClass.WriteLine("using System;");
swCPClass.WriteLine("using System.Configuration;");
swCPClass.WriteLine("using System.Data;");
swCPClass.WriteLine("using System.Data.SqlClient;");
swCPClass.WriteLine("using System.Collections;");
swCPClass.WriteLine(Environment.NewLine + "namespace " + m_sNETNamespace);
swCPClass.WriteLine("{");
// Class declaration
if(m_bNETIncludeComments)
{
swCPClass.WriteLine("\t/// <summary>");
swCPClass.WriteLine("\t/// Purpose: provides a SqlConnection object which can be shared among data-access tier objects");
swCPClass.WriteLine("\t/// to provide a way to do ADO.NET transaction coding without the hassling with SqlConnection objects");
swCPClass.WriteLine("\t/// on a high level.");
swCPClass.WriteLine("\t/// </summary>");
}
swCPClass.WriteLine("\tpublic class " + m_sNETClassPrefix + "ConnectionProvider : IDisposable");
swCPClass.WriteLine("\t{");
// Member declarations
swCPClass.WriteLine("\t\t#region Class Member Declarations");
swCPClass.WriteLine("\t\t\tprivate\tSqlConnection\t\t" + PrefixMemberVar("DBConnection","sco") + ";");
swCPClass.WriteLine("\t\t\tprivate\tbool\t\t\t\t" + PrefixMemberVar("IsTransactionPending", "b") + ", " + PrefixMemberVar("IsDisposed" , "b") + ";");
swCPClass.WriteLine("\t\t\tprivate\tSqlTransaction\t\t" + PrefixMemberVar("CurrentTransaction", "st") + ";");
swCPClass.WriteLine("\t\t\tprivate\tArrayList\t\t\t" + PrefixMemberVar("SavePoints", "al") + ";");
swCPClass.WriteLine("\t\t#endregion");
swCPClass.WriteLine(Environment.NewLine);
// ::ctor()
swCPClass.WriteLine("\t\tpublic " + m_sNETClassPrefix + "ConnectionProvider()");
swCPClass.WriteLine("\t\t{");
swCPClass.WriteLine("\t\t\t// Init the class");
swCPClass.WriteLine("\t\t\tInitClass();");
swCPClass.WriteLine("\t\t}");
swCPClass.WriteLine(Environment.NewLine);
// ::Dispose()
if(m_bNETIncludeComments)
{
swCPClass.WriteLine("\t\t/// <summary>");
swCPClass.WriteLine("\t\t/// Purpose: Implements the IDispose' method Dispose.");
swCPClass.WriteLine("\t\t/// </summary>");
}
swCPClass.WriteLine("\t\tpublic void Dispose()");
swCPClass.WriteLine("\t\t{");
swCPClass.WriteLine("\t\t\tDispose(true);");
swCPClass.WriteLine("\t\t\tGC.SuppressFinalize(this);");
swCPClass.WriteLine("\t\t}");
swCPClass.WriteLine(Environment.NewLine);
// ::Dispose(bool)
if(m_bNETIncludeComments)
{
swCPClass.WriteLine("\t\t/// <summary>");
swCPClass.WriteLine("\t\t/// Purpose: Implements the Dispose functionality.");
swCPClass.WriteLine("\t\t/// </summary>");
}
swCPClass.WriteLine("\t\tprotected virtual void Dispose(bool " + PrefixMethodParameter("IsDisposing","b") + ")");
swCPClass.WriteLine("\t\t{");
swCPClass.WriteLine("\t\t\t// Check to see if Dispose has already been called.");
swCPClass.WriteLine("\t\t\tif(!" + PrefixMemberVar("IsDisposed", "b") + ")");
swCPClass.WriteLine("\t\t\t{");
swCPClass.WriteLine("\t\t\t\tif(" + PrefixMethodParameter("IsDisposing", "b") + ")");
swCPClass.WriteLine("\t\t\t\t{");
swCPClass.WriteLine("\t\t\t\t\t// Dispose managed resources.");
swCPClass.WriteLine("\t\t\t\t\tif(" + PrefixMemberVar("CurrentTransaction", "st") + " != null)");
swCPClass.WriteLine("\t\t\t\t\t{");
swCPClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("CurrentTransaction", "st") + ".Dispose();");
swCPClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("CurrentTransaction", "st") + " = null;");
swCPClass.WriteLine("\t\t\t\t\t}");
swCPClass.WriteLine("\t\t\t\t\tif(" + PrefixMemberVar("DBConnection", "sco") + " != null)");
swCPClass.WriteLine("\t\t\t\t\t{");
swCPClass.WriteLine("\t\t\t\t\t\t// closing the connection will abort (rollback) any pending transactions");
swCPClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("DBConnection", "sco") + ".Close();");
swCPClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("DBConnection", "sco") + ".Dispose();");
swCPClass.WriteLine("\t\t\t\t\t\t" + PrefixMemberVar("DBConnection", "sco") + " = null;");
swCPClass.WriteLine("\t\t\t\t\t}");
swCPClass.WriteLine("\t\t\t\t}");
swCPClass.WriteLine("\t\t\t}");
swCPClass.WriteLine("\t\t\t" + PrefixMemberVar("IsDisposed","b") + " = true;");
swCPClass.WriteLine("\t\t}");
swCPClass.WriteLine(Environment.NewLine);
// ::In
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -