📄 clsllblgenerator.cs
字号:
swBaseClass.WriteLine("\t\t}" + Environment.NewLine + Environment.NewLine);
// Emit the Constructor String retrieval code if necessary
if(m_iNETConnectionStringRetrieval == (int)eConnectionStringRetrieval.ConstructionString)
{
// ::Construct()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t/// <summary>");
swBaseClass.WriteLine("\t\t/// Purpose: overrides the ServicedComponent's implementation of Construct() to retrieve the Constructor String from COM+.");
swBaseClass.WriteLine("\t\t/// </summary>");
}
swBaseClass.WriteLine("\t\tprotected override void Construct(string " + PrefixMethodParameter("ConstructString","s") + ")");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\tthis." + PrefixProperty("ConnectionString","s") + " = " + PrefixMethodParameter("ConstructString","s") + ";");
swBaseClass.WriteLine("\t\t}");
swBaseClass.WriteLine(Environment.NewLine);
}
if(!m_bNETIncludeCOMPlusSupport)
{
// ::Dispose()
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t/// <summary>");
swBaseClass.WriteLine("\t\t/// Purpose: Implements the IDispose' method Dispose.");
swBaseClass.WriteLine("\t\t/// </summary>");
}
swBaseClass.WriteLine("\t\tpublic void Dispose()");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\tDispose(true);");
swBaseClass.WriteLine("\t\t\tGC.SuppressFinalize(this);");
swBaseClass.WriteLine("\t\t}");
swBaseClass.WriteLine(Environment.NewLine);
}
// ::Dispose(bool)
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("\t\t/// <summary>");
swBaseClass.WriteLine("\t\t/// Purpose: Implements the Dispose functionality.");
swBaseClass.WriteLine("\t\t/// </summary>");
}
swBaseClass.WriteLine("\t\tprotected " + sOverrideDispose + "void Dispose(bool " + PrefixMethodParameter("IsDisposing","b") + ")");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\t// Check to see if Dispose has already been called.");
swBaseClass.WriteLine("\t\t\tif(!" + PrefixMemberVar("IsDisposed", "b") + ")");
swBaseClass.WriteLine("\t\t\t{");
swBaseClass.WriteLine("\t\t\t\tif(" + PrefixMethodParameter("IsDisposing", "b") + ")");
swBaseClass.WriteLine("\t\t\t\t{");
swBaseClass.WriteLine("\t\t\t\t\t// Dispose managed resources.");
if(m_bNETIncludeConnectionProviderSupport)
{
swBaseClass.WriteLine("\t\t\t\t\tif(" + PrefixMemberVar("MainConnectionIsCreatedLocal","b") + ")");
swBaseClass.WriteLine("\t\t\t\t\t{");
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") + " = false;");
swBaseClass.WriteLine("\t\t\t\t\t}");
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnectionProvider","cp") + " = null;");
}
else
{
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection","sco") + ".Dispose();");
}
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection","sco") + " = null;");
swBaseClass.WriteLine("\t\t\t\t}");
swBaseClass.WriteLine("\t\t\t}");
swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("IsDisposed","b") + " = true;");
if(m_bNETIncludeCOMPlusSupport)
{
swBaseClass.WriteLine("\t\t\tbase.Dispose(true);");
}
swBaseClass.WriteLine("\t\t}");
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 virtual bool Insert()");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\t// No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tthrow new NotImplementedException();");
swBaseClass.WriteLine("\t\t}");
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 virtual bool Delete()");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\t// No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tthrow new NotImplementedException();");
swBaseClass.WriteLine("\t\t}");
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 virtual bool Update()");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\t// No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tthrow new NotImplementedException();");
swBaseClass.WriteLine("\t\t}");
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 virtual DataTable SelectOne()");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\t// No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tthrow new NotImplementedException();");
swBaseClass.WriteLine("\t\t}");
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 virtual DataTable SelectAll()");
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\t// No implementation, throw exception");
swBaseClass.WriteLine("\t\t\tthrow new NotImplementedException();");
swBaseClass.WriteLine("\t\t}");
swBaseClass.WriteLine(Environment.NewLine);
// Properties
bool bWriteWhiteSpace = false;
swBaseClass.WriteLine("\t\t#region Class Property Declarations");
if(m_bNETIncludeConnectionProviderSupport)
{
swBaseClass.WriteLine("\t\tpublic " + m_sNETClassPrefix + "ConnectionProvider " + PrefixProperty("MainConnectionProvider", "cp"));
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\tset");
swBaseClass.WriteLine("\t\t\t{");
swBaseClass.WriteLine("\t\t\t\tif(value==null)");
swBaseClass.WriteLine("\t\t\t\t{");
swBaseClass.WriteLine("\t\t\t\t\t// Invalid value");
swBaseClass.WriteLine("\t\t\t\t\tthrow new ArgumentNullException(\"" + PrefixProperty("MainConnectionProvider", "cp") + "\", \"Null passed as value to this property which is not allowed.\");");
swBaseClass.WriteLine("\t\t\t\t}" + 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(" + PrefixMemberVar("MainConnection", "sco") + "!=null)");
swBaseClass.WriteLine("\t\t\t\t{");
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") + ")");
swBaseClass.WriteLine("\t\t\t\t\t{");
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\t}");
swBaseClass.WriteLine("\t\t\t\t\t// Remove reference.");
swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + " = null;");
swBaseClass.WriteLine("\t\t\t\t}");
swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnectionProvider","cp") + " = (" + m_sNETClassPrefix + "ConnectionProvider)value;");
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\t}");
swBaseClass.WriteLine("\t\t}");
bWriteWhiteSpace = true;
}
if(m_bSPIncludeErrorCodeSupport)
{
if(bWriteWhiteSpace)
{
swBaseClass.WriteLine(Environment.NewLine);
bWriteWhiteSpace=false;
}
swBaseClass.WriteLine("\t\tpublic SqlInt32 " + PrefixProperty("ErrorCode","i"));
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\tget");
swBaseClass.WriteLine("\t\t\t{");
swBaseClass.WriteLine("\t\t\t\treturn " + PrefixMemberVar("ErrorCode", "i") + ";");
swBaseClass.WriteLine("\t\t\t}");
swBaseClass.WriteLine("\t\t}");
bWriteWhiteSpace = true;
}
if(m_iNETConnectionStringRetrieval != (int)eConnectionStringRetrieval.AppConfig)
{
if(bWriteWhiteSpace)
{
swBaseClass.WriteLine(Environment.NewLine);
bWriteWhiteSpace=false;
}
swBaseClass.WriteLine("\t\tpublic string " + PrefixProperty("ConnectionString","s"));
swBaseClass.WriteLine("\t\t{");
swBaseClass.WriteLine("\t\t\tget");
swBaseClass.WriteLine("\t\t\t{");
swBaseClass.WriteLine("\t\t\t\treturn " + PrefixMemberVar("ConnectionString", "s") + ";");
swBaseClass.WriteLine("\t\t\t}");
swBaseClass.WriteLine("\t\t\tset");
swBaseClass.WriteLine("\t\t\t{");
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\t}");
swBaseClass.WriteLine("\t\t}");
}
swBaseClass.WriteLine("\t\t#endregion");
swBaseClass.WriteLine("\t}");
swBaseClass.WriteLine("}");
swBaseClass.Close();
}
/// <summary>
/// Purpose: writes the baseclass which is used to derive the per-table VB.NET classes from.
/// It's used to construct a valuable connection object, ready to use for the per-table VB.NET classes'
/// methods.
/// </summary>
private void WriteVBBaseClass()
{
string sBaseClassFile = m_sNETOutputPath + m_sNETClassPrefix + "DBInteractionBase.vb";
string sInheritsFrom, sOverrideDispose;
bool bHasBaseClass;
if(File.Exists(sBaseClassFile))
{
// remove the file.
File.Delete(sBaseClassFile);
}
// write the file
StreamWriter swBaseClass = new StreamWriter(sBaseClassFile);
// Class file header
if(m_bNETIncludeComments)
{
swBaseClass.WriteLine("' //////////////////////////////////////////////////////////////////////////////////////////");
swBaseClass.WriteLine("' // Description: Base class for Database Interaction. ");
swBaseClass.WriteLine("' // Generated by LLBLGen v" + m_wMainWindow.sAppVersion + " on: " + DateTime.Now.ToLongDateString() + ", " + DateTime.Now.ToLongTimeString());
swBaseClass.WriteLine("' // Because this class implements IDisposable, derived classes shouldn't do so.");
swBaseClass.WriteLine("' //////////////////////////////////////////////////////////////////////////////////////////");
}
swBaseClass.WriteLine("Imports System");
swBaseClass.WriteLine("Imports System.Configuration");
swBaseClass.WriteLine("Imports System.Data");
swBaseClass.WriteLine("Imports System.Data.SqlClient");
swBaseClass.WriteLine("Imports System.Data.SqlTypes");
if(m_bNETIncludeCOMPlusSupport)
{
swBaseClass.WriteLine("Imports System.EnterpriseServices");
swBaseClass.WriteLine("Imports System.Runtime.InteropServices" + Environment.NewLine);
// emit assembly signing attributes.
swBaseClass.WriteLine("' ///////////////////////////////////////////////////////////////////////////");
swBaseClass.WriteLine("' // Uncomment the following 2 lines if the assembly build with the generated classes");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -