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

📄 clsllblgenerator.cs

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