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

📄 clsllblgenerator.cs

📁 LLBLGen 1.21 Sourcecode
💻 CS
📖 第 1 页 / 共 5 页
字号:
			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 + -