<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: DotNetNuke &#8211; The Data Layer &#8211; Installing CodeSmith</title>
	<atom:link href="http://blog.dmbcllc.com/2008/07/22/dotnetnuke-the-data-layer-installing-codesmith/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dmbcllc.com/2008/07/22/dotnetnuke-the-data-layer-installing-codesmith/</link>
	<description>ASP.NET, HTML, CSS, Visual Studio, CSharp, VB.NET and other programming items of interest.</description>
	<lastBuildDate>Mon, 15 Mar 2010 11:52:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Brian</title>
		<link>http://blog.dmbcllc.com/2008/07/22/dotnetnuke-the-data-layer-installing-codesmith/comment-page-1/#comment-1385</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Thu, 08 Jan 2009 15:39:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dmbcllc.com/2008/07/22/dotnetnuke-the-data-layer-installing-codesmith/#comment-1385</guid>
		<description>Thanks for the great tutorial.  I&#039;m not as patient as you as far as going back in to &quot;fix&quot; generated code.  Tried it twice before I had to update the CodeSmith template.  Below is the modified template for the &quot;Controller&quot; class if its of any use to anybody:
-----------------------------------------------------------------------------------
























using System;
using System.Collections;
using System.Data;
using DotNetNuke.Framework;
using ;

namespace 
{
	public class Controller : DotNetNuke.Entities.Modules.ISearchable, DotNetNuke.Entities.Modules.IPortable : DotNetNuke.Entities.Modules.IPortable
	{
		#region &quot;Public Methods&quot;		
		
		public  (,int moduleId )
		{
			 table = new ();
			table.Load(DataProvider.Instance().Get(, moduleId ));
			if (table.Count &gt; 0) return table[0];
			return null;
		}
	

	 
		public  ()
		{
			 table = new ();
			table.Load(DataProvider.Instance().());
			return table;
		}
	

	
		&lt;% for (int K = 0; K 
		
		public ArrayList By()
		{
			return DotNetNuke.Common.Utilities.CBO.FillCollection(DataProvider.Instance().By(), typeof());
		}
		
	
	
		
		public int ( obj)
		{
			return (int)DataProvider.Instance().();
		}
	
	
		
		public void ( obj)
		{
			DataProvider.Instance().(, );
		}
	
		
		
		public void ()
		{
			DataProvider.Instance().();
		}
	
		#endregion

		
		#region &quot;Optional Interfaces&quot;		
	
	
        public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
		{
			return null;
		}
	
	
	
        public string ExportModule(int ModuleID)
		{
			return &quot;&quot;;
        }

        public void ImportModule(int ModuleID, string Content, string Version, int UserId)
		{
		}
	
		
		#endregion
	
	}
}


public string GetMemberVariableDeclarationStatement(ColumnSchema column)
{
	return GetMemberVariableDeclarationStatement(&quot;protected&quot;, column);
}

public string GetTableName(TableSchema table)
{
	if( ObjectQualifier.Length &gt; 0 )
	{
		return table.Name.Replace(ObjectQualifier, &quot;&quot;);
	}
	else
	{
		return table.Name;
	}
}

public string GetMemberVariableDeclarationStatement(string protectionLevel, ColumnSchema column)
{
	//string statement = &quot;Dim &quot; + GetMemberVariableName(column) + &quot; as &quot; + GetVBVariableType(column);
	string statement = GetCSharpVariableType(column) + &quot; &quot; + GetMemberVariableName(column) + &quot;;&quot;;// as &quot; + GetVBVariableType(column);
	return statement;
}

public string GetReaderAssignmentStatement(ColumnSchema column, int index)
{
	string statement = &quot;if (!reader.IsDBNull(&quot; + index.ToString() + &quot;)) &quot;;
	statement += GetMemberVariableName(column) + &quot; = &quot;;
	
	if (column.Name.EndsWith(&quot;TypeCode&quot;)) statement += &quot;(&quot; + column.Name + &quot;)&quot;;
	
	statement += &quot;reader.&quot; + GetReaderMethod(column) + &quot;(&quot; + index.ToString() + &quot;);&quot;;
	
	return statement;
}

public string GetCamelCaseName(string value)
{
	return value.Substring(0, 1).ToLower() + value.Substring(1);
}

public string GetMemberVariableName(ColumnSchema column)
{
	string propertyName = GetPropertyName(column);
	string memberVariableName = &quot;_&quot; + GetCamelCaseName(propertyName);
	
	return memberVariableName;
}

public string GetPropertyName(ColumnSchema column)
{
	string propertyName = column.Name;
	
	if (propertyName == column.Table.Name + &quot;Name&quot;) return &quot;Name&quot;;
	if (propertyName == column.Table.Name + &quot;Description&quot;) return &quot;Description&quot;;
	
	if (propertyName.EndsWith(&quot;TypeCode&quot;)) propertyName = propertyName.Substring(0, propertyName.Length - 4);
	
	return propertyName;
}
		
public string GetMemberVariableDefaultValue(ColumnSchema column)
{
	switch (column.DataType)
	{
		case DbType.Guid:
		{
			return &quot;Guid.Empty&quot;;
		}
		case DbType.AnsiString:
		case DbType.AnsiStringFixedLength:
		case DbType.String:
		case DbType.StringFixedLength:
		{
			return &quot;string.Empty&quot;;
		}
		default:
		{
			return &quot;&quot;;
		}
	}
}

public string GetCSharpVariableType(ColumnSchema column)
{
	if (column.Name.EndsWith(&quot;TypeCode&quot;)) return column.Name;
	
	switch (column.DataType)
	{
		case DbType.AnsiString: return &quot;string&quot;;
		case DbType.AnsiStringFixedLength: return &quot;string&quot;;
		case DbType.Binary: return &quot;byte()&quot;;
		case DbType.Boolean: return &quot;bool&quot;;
		case DbType.Byte: return &quot;byte&quot;;
		case DbType.Currency: return &quot;decimal&quot;;
		case DbType.Date: return &quot;DateTime&quot;;
		case DbType.DateTime: return &quot;DateTime&quot;;
		case DbType.Decimal: return &quot;decimal&quot;;
		case DbType.Double: return &quot;double&quot;;
		case DbType.Guid: return &quot;Guid&quot;;
		case DbType.Int16: return &quot;short&quot;;
		case DbType.Int32: return &quot;int&quot;;
		case DbType.Int64: return &quot;long&quot;;
		case DbType.Object: return &quot;object&quot;;
		case DbType.SByte: return &quot;sbyte&quot;;
		case DbType.Single: return &quot;float&quot;;
		case DbType.String: return &quot;string&quot;;
		case DbType.StringFixedLength: return &quot;string&quot;;
		case DbType.Time: return &quot;TimeSpan&quot;;
		case DbType.UInt16: return &quot;ushort&quot;;
		case DbType.UInt32: return &quot;uint&quot;;
		case DbType.UInt64: return &quot;ulong&quot;;
		case DbType.VarNumeric: return &quot;decimal&quot;;
		default:
		{
			return &quot;__UNKNOWN__&quot; + column.NativeType;
		}
	}
}

public string GetVBVariableType(ColumnSchema column)
{
	if (column.Name.EndsWith(&quot;TypeCode&quot;)) return column.Name;
	
	switch (column.DataType)
	{
		case DbType.AnsiString: return &quot;string&quot;;
		case DbType.AnsiStringFixedLength: return &quot;string&quot;;
		case DbType.Binary: return &quot;byte()&quot;;
		case DbType.Boolean: return &quot;Boolean&quot;;
		case DbType.Byte: return &quot;byte&quot;;
		case DbType.Currency: return &quot;decimal&quot;;
		case DbType.Date: return &quot;DateTime&quot;;
		case DbType.DateTime: return &quot;DateTime&quot;;
		case DbType.Decimal: return &quot;decimal&quot;;
		case DbType.Double: return &quot;double&quot;;
		case DbType.Guid: return &quot;Guid&quot;;
		case DbType.Int16: return &quot;short&quot;;
		case DbType.Int32: return &quot;Integer&quot;;
		case DbType.Int64: return &quot;long&quot;;
		case DbType.Object: return &quot;object&quot;;
		case DbType.SByte: return &quot;sbyte&quot;;
		case DbType.Single: return &quot;float&quot;;
		case DbType.String: return &quot;String&quot;;
		case DbType.StringFixedLength: return &quot;String&quot;;
		case DbType.Time: return &quot;TimeSpan&quot;;
		case DbType.UInt16: return &quot;ushort&quot;;
		case DbType.UInt32: return &quot;uint&quot;;
		case DbType.UInt64: return &quot;ulong&quot;;
		case DbType.VarNumeric: return &quot;decimal&quot;;
		default:
		{
			return &quot;__UNKNOWN__&quot; + column.NativeType;
		}
	}
}

public string GetReaderMethod(ColumnSchema column)
{
	switch (column.DataType)
	{
		case DbType.Byte:
		{
			return &quot;GetByte&quot;;
		}
		case DbType.Int16:
		{
			return &quot;GetInt16&quot;;
		}
		case DbType.Int32:
		{
			return &quot;GetInt32&quot;;
		}
		case DbType.Int64:
		{
			return &quot;GetInt64&quot;;
		}
		case DbType.AnsiStringFixedLength:
		case DbType.AnsiString:
		case DbType.String:
		case DbType.StringFixedLength:
		{
			return &quot;GetString&quot;;
		}
		case DbType.Boolean:
		{
			return &quot;GetBoolean&quot;;
		}
		case DbType.Guid:
		{
			return &quot;GetGuid&quot;;
		}
		case DbType.Currency:
		case DbType.Decimal:
		{
			return &quot;GetDecimal&quot;;
		}
		case DbType.DateTime:
		case DbType.Date:
		{
			return &quot;GetDateTime&quot;;
		}
		default:
		{
			return &quot;__SQL__&quot; + column.DataType;
		}
	}
}

public string GetClassName(TableSchema table)
{
	if( ObjectQualifier.Length &gt; 0 )
	{
		return (&quot;DataSet&quot; + table.Name + &quot;.&quot;).Replace(ObjectQualifier, &quot;&quot;) + table.Name + &quot;DataTable&quot;;
	}
	else
	{
		return &quot;DataSet&quot; + table.Name + &quot;.&quot; + table.Name + &quot;DataTable&quot;;
	}
}

public string GetClassNameInfo(TableSchema table)
{
	if( ObjectQualifier.Length &gt; 0 )
	{
		return (&quot;DataSet&quot; + table.Name + &quot;.&quot;).Replace(ObjectQualifier, &quot;&quot;) + table.Name + &quot;Row&quot;;
	}
	else
	{
		return &quot;DataSet&quot; + table.Name + &quot;.&quot; + table.Name + &quot;Row&quot;;
	}
}

public string GetSqlDbType(ColumnSchema column)
{
	switch (column.NativeType)
	{
		case &quot;bigint&quot;: return &quot;BigInt&quot;;
		case &quot;binary&quot;: return &quot;Binary&quot;;
		case &quot;bit&quot;: return &quot;Bit&quot;;
		case &quot;char&quot;: return &quot;Char&quot;;
		case &quot;datetime&quot;: return &quot;DateTime&quot;;
		case &quot;decimal&quot;: return &quot;Decimal&quot;;
		case &quot;float&quot;: return &quot;Float&quot;;
		case &quot;image&quot;: return &quot;Image&quot;;
		case &quot;int&quot;: return &quot;Int&quot;;
		case &quot;money&quot;: return &quot;Money&quot;;
		case &quot;nchar&quot;: return &quot;NChar&quot;;
		case &quot;ntext&quot;: return &quot;NText&quot;;
		case &quot;numeric&quot;: return &quot;Decimal&quot;;
		case &quot;nvarchar&quot;: return &quot;NVarChar&quot;;
		case &quot;real&quot;: return &quot;Real&quot;;
		case &quot;smalldatetime&quot;: return &quot;SmallDateTime&quot;;
		case &quot;smallint&quot;: return &quot;SmallInt&quot;;
		case &quot;smallmoney&quot;: return &quot;SmallMoney&quot;;
		case &quot;sql_variant&quot;: return &quot;Variant&quot;;
		case &quot;sysname&quot;: return &quot;NChar&quot;;
		case &quot;text&quot;: return &quot;Text&quot;;
		case &quot;timestamp&quot;: return &quot;Timestamp&quot;;
		case &quot;tinyint&quot;: return &quot;TinyInt&quot;;
		case &quot;uniqueidentifier&quot;: return &quot;UniqueIdentifier&quot;;
		case &quot;varbinary&quot;: return &quot;VarBinary&quot;;
		case &quot;varchar&quot;: return &quot;VarChar&quot;;
		default: return &quot;__UNKNOWN__&quot; + column.NativeType;
	}
}

public string GetPrimaryKeyType(TableSchema table)
{
	if (table.PrimaryKey != null)
	{
		if (table.PrimaryKey.MemberColumns.Count == 1)
		{
			return GetCSharpVariableType(table.PrimaryKey.MemberColumns[0]);
		}
		else
		{
			throw new ApplicationException(&quot;This template will not work on primary keys with more than one member column.&quot;);
		}
	}
	else
	{
		throw new ApplicationException(&quot;This template will only work on tables with a primary key.&quot;);
	}
}

public string GetPrimaryKeyName(TableSchema table)
{
	if (table.PrimaryKey != null)
	{
		if (table.PrimaryKey.MemberColumns.Count == 1)
		{
			return table.PrimaryKey.MemberColumns[0].Name;
		}
		else
		{
			throw new ApplicationException(&quot;This template will not work on primary keys with more than one member column.&quot;);
		}
	}
	else
	{
		throw new ApplicationException(&quot;This template will only work on tables with a primary key.&quot;);
	}
}

public string GetPrimaryKeyParameters(TableSchema table, bool includeTypes)
{
    string parameters = &quot;&quot;;
	if (table.PrimaryKey != null)
	{
		for( int i = 0; i &lt; table.PrimaryKey.MemberColumns.Count; i++ )
		{
			if(parameters.Length == 0)
			{
				if( includeTypes )
					parameters = parameters;// + &quot;ByVal &quot;;
					
				parameters = parameters + GetCamelCaseName(table.PrimaryKey.MemberColumns[i].Name);
				
				if( includeTypes )
				{
					parameters = GetCSharpVariableType(table.PrimaryKey.MemberColumns[i]) + &quot; &quot; + parameters + &quot; &quot;;
				}
			}
			else
			{
				parameters = parameters + &quot;, &quot;;
				if( includeTypes )
					parameters = parameters;// + &quot;ByVal &quot;;
					
				parameters = parameters + GetCamelCaseName(table.PrimaryKey.MemberColumns[i].Name);
				
				if( includeTypes )
				{
					parameters = GetCSharpVariableType(table.PrimaryKey.MemberColumns[i]) + &quot; &quot; + parameters + &quot; &quot;;
				}
			}
		}
	}
	else
	{
		throw new ApplicationException(&quot;This template will only work on tables with a primary key.&quot;);
	}
	return parameters;
}

public string GetNonPrimaryKeyParameters(TableSchema table, bool includeTypes)
{
    string parameters = &quot;&quot;;
	if (table.PrimaryKey != null)
	{
		for( int i = 0; i &lt; table.NonPrimaryKeyColumns.Count; i++ )
		{
			if(parameters.Length == 0)
			{
				if( includeTypes )
					parameters = parameters;// + &quot;ByVal &quot;;
					
				
				
				if( includeTypes )
				{
					parameters = GetCSharpVariableType(table.NonPrimaryKeyColumns[i]) + &quot; &quot; + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name) + &quot; &quot;;
				}
				else
				{
					parameters = parameters + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name);
				}
			}
			else
			{
				parameters = parameters + &quot;, &quot;;
				if( includeTypes )
					parameters = parameters;// + &quot;ByVal &quot;;
					
				if( includeTypes )
				{
					parameters = parameters + GetCSharpVariableType(table.NonPrimaryKeyColumns[i]) + &quot; &quot; + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name) + &quot; &quot;;
				}
				else
				{
					parameters = parameters + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name);
				}
			}
		}
	}
	else
	{
		throw new ApplicationException(&quot;This template will only work on tables with a primary key.&quot;);
	}
	return parameters;
}

public string GetPrimaryKeyParametersForObject(TableSchema table, string obj)
{
    string parameters = &quot;&quot;;
	if (table.PrimaryKey != null)
	{
		for( int i = 0; i &lt; table.PrimaryKey.MemberColumns.Count; i++ )
		{
			if(parameters.Length == 0)
			{
				parameters = parameters + obj + &quot;.&quot; + table.PrimaryKey.MemberColumns[i].Name;
			}
			else
			{
				parameters = parameters + &quot;, &quot;;
				parameters = parameters + obj + &quot;.&quot; + table.PrimaryKey.MemberColumns[i].Name;
			}
		}
	}
	else
	{
		throw new ApplicationException(&quot;This template will only work on tables with a primary key.&quot;);
	}
	return parameters;
}

public string GetNonPrimaryKeyParametersForObject(TableSchema table, string obj)
{
    string parameters = &quot;&quot;;

	for( int i = 0; i &lt; table.NonPrimaryKeyColumns.Count; i++ )
	{
		if(parameters.Length == 0)
		{
			parameters = parameters + obj + &quot;.&quot; + table.NonPrimaryKeyColumns[i].Name;
		}
		else
		{
			parameters = parameters + &quot;, &quot;;
			parameters = parameters + obj + &quot;.&quot; + table.NonPrimaryKeyColumns[i].Name;
		}
	}
	
	return parameters;
}

</description>
		<content:encoded><![CDATA[<p>Thanks for the great tutorial.  I&#8217;m not as patient as you as far as going back in to &#8220;fix&#8221; generated code.  Tried it twice before I had to update the CodeSmith template.  Below is the modified template for the &#8220;Controller&#8221; class if its of any use to anybody:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>using System;<br />
using System.Collections;<br />
using System.Data;<br />
using DotNetNuke.Framework;<br />
using ;</p>
<p>namespace<br />
{<br />
	public class Controller : DotNetNuke.Entities.Modules.ISearchable, DotNetNuke.Entities.Modules.IPortable : DotNetNuke.Entities.Modules.IPortable<br />
	{<br />
		#region &#8220;Public Methods&#8221;		</p>
<p>		public  (,int moduleId )<br />
		{<br />
			 table = new ();<br />
			table.Load(DataProvider.Instance().Get(, moduleId ));<br />
			if (table.Count &gt; 0) return table[0];<br />
			return null;<br />
		}</p>
<p>		public  ()<br />
		{<br />
			 table = new ();<br />
			table.Load(DataProvider.Instance().());<br />
			return table;<br />
		}</p>
<p>		&lt;% for (int K = 0; K </p>
<p>		public ArrayList By()<br />
		{<br />
			return DotNetNuke.Common.Utilities.CBO.FillCollection(DataProvider.Instance().By(), typeof());<br />
		}</p>
<p>		public int ( obj)<br />
		{<br />
			return (int)DataProvider.Instance().();<br />
		}</p>
<p>		public void ( obj)<br />
		{<br />
			DataProvider.Instance().(, );<br />
		}</p>
<p>		public void ()<br />
		{<br />
			DataProvider.Instance().();<br />
		}</p>
<p>		#endregion</p>
<p>		#region &#8220;Optional Interfaces&#8221;		</p>
<p>        public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)<br />
		{<br />
			return null;<br />
		}</p>
<p>        public string ExportModule(int ModuleID)<br />
		{<br />
			return &#8220;&#8221;;<br />
        }</p>
<p>        public void ImportModule(int ModuleID, string Content, string Version, int UserId)<br />
		{<br />
		}</p>
<p>		#endregion</p>
<p>	}<br />
}</p>
<p>public string GetMemberVariableDeclarationStatement(ColumnSchema column)<br />
{<br />
	return GetMemberVariableDeclarationStatement(&#8220;protected&#8221;, column);<br />
}</p>
<p>public string GetTableName(TableSchema table)<br />
{<br />
	if( ObjectQualifier.Length &gt; 0 )<br />
	{<br />
		return table.Name.Replace(ObjectQualifier, &#8220;&#8221;);<br />
	}<br />
	else<br />
	{<br />
		return table.Name;<br />
	}<br />
}</p>
<p>public string GetMemberVariableDeclarationStatement(string protectionLevel, ColumnSchema column)<br />
{<br />
	//string statement = &#8220;Dim &#8221; + GetMemberVariableName(column) + &#8221; as &#8221; + GetVBVariableType(column);<br />
	string statement = GetCSharpVariableType(column) + &#8221; &#8221; + GetMemberVariableName(column) + &#8220;;&#8221;;// as &#8221; + GetVBVariableType(column);<br />
	return statement;<br />
}</p>
<p>public string GetReaderAssignmentStatement(ColumnSchema column, int index)<br />
{<br />
	string statement = &#8220;if (!reader.IsDBNull(&#8221; + index.ToString() + &#8220;)) &#8220;;<br />
	statement += GetMemberVariableName(column) + &#8221; = &#8220;;</p>
<p>	if (column.Name.EndsWith(&#8220;TypeCode&#8221;)) statement += &#8220;(&#8221; + column.Name + &#8220;)&#8221;;</p>
<p>	statement += &#8220;reader.&#8221; + GetReaderMethod(column) + &#8220;(&#8221; + index.ToString() + &#8220;);&#8221;;</p>
<p>	return statement;<br />
}</p>
<p>public string GetCamelCaseName(string value)<br />
{<br />
	return value.Substring(0, 1).ToLower() + value.Substring(1);<br />
}</p>
<p>public string GetMemberVariableName(ColumnSchema column)<br />
{<br />
	string propertyName = GetPropertyName(column);<br />
	string memberVariableName = &#8220;_&#8221; + GetCamelCaseName(propertyName);</p>
<p>	return memberVariableName;<br />
}</p>
<p>public string GetPropertyName(ColumnSchema column)<br />
{<br />
	string propertyName = column.Name;</p>
<p>	if (propertyName == column.Table.Name + &#8220;Name&#8221;) return &#8220;Name&#8221;;<br />
	if (propertyName == column.Table.Name + &#8220;Description&#8221;) return &#8220;Description&#8221;;</p>
<p>	if (propertyName.EndsWith(&#8220;TypeCode&#8221;)) propertyName = propertyName.Substring(0, propertyName.Length &#8211; 4);</p>
<p>	return propertyName;<br />
}</p>
<p>public string GetMemberVariableDefaultValue(ColumnSchema column)<br />
{<br />
	switch (column.DataType)<br />
	{<br />
		case DbType.Guid:<br />
		{<br />
			return &#8220;Guid.Empty&#8221;;<br />
		}<br />
		case DbType.AnsiString:<br />
		case DbType.AnsiStringFixedLength:<br />
		case DbType.String:<br />
		case DbType.StringFixedLength:<br />
		{<br />
			return &#8220;string.Empty&#8221;;<br />
		}<br />
		default:<br />
		{<br />
			return &#8220;&#8221;;<br />
		}<br />
	}<br />
}</p>
<p>public string GetCSharpVariableType(ColumnSchema column)<br />
{<br />
	if (column.Name.EndsWith(&#8220;TypeCode&#8221;)) return column.Name;</p>
<p>	switch (column.DataType)<br />
	{<br />
		case DbType.AnsiString: return &#8220;string&#8221;;<br />
		case DbType.AnsiStringFixedLength: return &#8220;string&#8221;;<br />
		case DbType.Binary: return &#8220;byte()&#8221;;<br />
		case DbType.Boolean: return &#8220;bool&#8221;;<br />
		case DbType.Byte: return &#8220;byte&#8221;;<br />
		case DbType.Currency: return &#8220;decimal&#8221;;<br />
		case DbType.Date: return &#8220;DateTime&#8221;;<br />
		case DbType.DateTime: return &#8220;DateTime&#8221;;<br />
		case DbType.Decimal: return &#8220;decimal&#8221;;<br />
		case DbType.Double: return &#8220;double&#8221;;<br />
		case DbType.Guid: return &#8220;Guid&#8221;;<br />
		case DbType.Int16: return &#8220;short&#8221;;<br />
		case DbType.Int32: return &#8220;int&#8221;;<br />
		case DbType.Int64: return &#8220;long&#8221;;<br />
		case DbType.Object: return &#8220;object&#8221;;<br />
		case DbType.SByte: return &#8220;sbyte&#8221;;<br />
		case DbType.Single: return &#8220;float&#8221;;<br />
		case DbType.String: return &#8220;string&#8221;;<br />
		case DbType.StringFixedLength: return &#8220;string&#8221;;<br />
		case DbType.Time: return &#8220;TimeSpan&#8221;;<br />
		case DbType.UInt16: return &#8220;ushort&#8221;;<br />
		case DbType.UInt32: return &#8220;uint&#8221;;<br />
		case DbType.UInt64: return &#8220;ulong&#8221;;<br />
		case DbType.VarNumeric: return &#8220;decimal&#8221;;<br />
		default:<br />
		{<br />
			return &#8220;__UNKNOWN__&#8221; + column.NativeType;<br />
		}<br />
	}<br />
}</p>
<p>public string GetVBVariableType(ColumnSchema column)<br />
{<br />
	if (column.Name.EndsWith(&#8220;TypeCode&#8221;)) return column.Name;</p>
<p>	switch (column.DataType)<br />
	{<br />
		case DbType.AnsiString: return &#8220;string&#8221;;<br />
		case DbType.AnsiStringFixedLength: return &#8220;string&#8221;;<br />
		case DbType.Binary: return &#8220;byte()&#8221;;<br />
		case DbType.Boolean: return &#8220;Boolean&#8221;;<br />
		case DbType.Byte: return &#8220;byte&#8221;;<br />
		case DbType.Currency: return &#8220;decimal&#8221;;<br />
		case DbType.Date: return &#8220;DateTime&#8221;;<br />
		case DbType.DateTime: return &#8220;DateTime&#8221;;<br />
		case DbType.Decimal: return &#8220;decimal&#8221;;<br />
		case DbType.Double: return &#8220;double&#8221;;<br />
		case DbType.Guid: return &#8220;Guid&#8221;;<br />
		case DbType.Int16: return &#8220;short&#8221;;<br />
		case DbType.Int32: return &#8220;Integer&#8221;;<br />
		case DbType.Int64: return &#8220;long&#8221;;<br />
		case DbType.Object: return &#8220;object&#8221;;<br />
		case DbType.SByte: return &#8220;sbyte&#8221;;<br />
		case DbType.Single: return &#8220;float&#8221;;<br />
		case DbType.String: return &#8220;String&#8221;;<br />
		case DbType.StringFixedLength: return &#8220;String&#8221;;<br />
		case DbType.Time: return &#8220;TimeSpan&#8221;;<br />
		case DbType.UInt16: return &#8220;ushort&#8221;;<br />
		case DbType.UInt32: return &#8220;uint&#8221;;<br />
		case DbType.UInt64: return &#8220;ulong&#8221;;<br />
		case DbType.VarNumeric: return &#8220;decimal&#8221;;<br />
		default:<br />
		{<br />
			return &#8220;__UNKNOWN__&#8221; + column.NativeType;<br />
		}<br />
	}<br />
}</p>
<p>public string GetReaderMethod(ColumnSchema column)<br />
{<br />
	switch (column.DataType)<br />
	{<br />
		case DbType.Byte:<br />
		{<br />
			return &#8220;GetByte&#8221;;<br />
		}<br />
		case DbType.Int16:<br />
		{<br />
			return &#8220;GetInt16&#8243;;<br />
		}<br />
		case DbType.Int32:<br />
		{<br />
			return &#8220;GetInt32&#8243;;<br />
		}<br />
		case DbType.Int64:<br />
		{<br />
			return &#8220;GetInt64&#8243;;<br />
		}<br />
		case DbType.AnsiStringFixedLength:<br />
		case DbType.AnsiString:<br />
		case DbType.String:<br />
		case DbType.StringFixedLength:<br />
		{<br />
			return &#8220;GetString&#8221;;<br />
		}<br />
		case DbType.Boolean:<br />
		{<br />
			return &#8220;GetBoolean&#8221;;<br />
		}<br />
		case DbType.Guid:<br />
		{<br />
			return &#8220;GetGuid&#8221;;<br />
		}<br />
		case DbType.Currency:<br />
		case DbType.Decimal:<br />
		{<br />
			return &#8220;GetDecimal&#8221;;<br />
		}<br />
		case DbType.DateTime:<br />
		case DbType.Date:<br />
		{<br />
			return &#8220;GetDateTime&#8221;;<br />
		}<br />
		default:<br />
		{<br />
			return &#8220;__SQL__&#8221; + column.DataType;<br />
		}<br />
	}<br />
}</p>
<p>public string GetClassName(TableSchema table)<br />
{<br />
	if( ObjectQualifier.Length &gt; 0 )<br />
	{<br />
		return (&#8220;DataSet&#8221; + table.Name + &#8220;.&#8221;).Replace(ObjectQualifier, &#8220;&#8221;) + table.Name + &#8220;DataTable&#8221;;<br />
	}<br />
	else<br />
	{<br />
		return &#8220;DataSet&#8221; + table.Name + &#8220;.&#8221; + table.Name + &#8220;DataTable&#8221;;<br />
	}<br />
}</p>
<p>public string GetClassNameInfo(TableSchema table)<br />
{<br />
	if( ObjectQualifier.Length &gt; 0 )<br />
	{<br />
		return (&#8220;DataSet&#8221; + table.Name + &#8220;.&#8221;).Replace(ObjectQualifier, &#8220;&#8221;) + table.Name + &#8220;Row&#8221;;<br />
	}<br />
	else<br />
	{<br />
		return &#8220;DataSet&#8221; + table.Name + &#8220;.&#8221; + table.Name + &#8220;Row&#8221;;<br />
	}<br />
}</p>
<p>public string GetSqlDbType(ColumnSchema column)<br />
{<br />
	switch (column.NativeType)<br />
	{<br />
		case &#8220;bigint&#8221;: return &#8220;BigInt&#8221;;<br />
		case &#8220;binary&#8221;: return &#8220;Binary&#8221;;<br />
		case &#8220;bit&#8221;: return &#8220;Bit&#8221;;<br />
		case &#8220;char&#8221;: return &#8220;Char&#8221;;<br />
		case &#8220;datetime&#8221;: return &#8220;DateTime&#8221;;<br />
		case &#8220;decimal&#8221;: return &#8220;Decimal&#8221;;<br />
		case &#8220;float&#8221;: return &#8220;Float&#8221;;<br />
		case &#8220;image&#8221;: return &#8220;Image&#8221;;<br />
		case &#8220;int&#8221;: return &#8220;Int&#8221;;<br />
		case &#8220;money&#8221;: return &#8220;Money&#8221;;<br />
		case &#8220;nchar&#8221;: return &#8220;NChar&#8221;;<br />
		case &#8220;ntext&#8221;: return &#8220;NText&#8221;;<br />
		case &#8220;numeric&#8221;: return &#8220;Decimal&#8221;;<br />
		case &#8220;nvarchar&#8221;: return &#8220;NVarChar&#8221;;<br />
		case &#8220;real&#8221;: return &#8220;Real&#8221;;<br />
		case &#8220;smalldatetime&#8221;: return &#8220;SmallDateTime&#8221;;<br />
		case &#8220;smallint&#8221;: return &#8220;SmallInt&#8221;;<br />
		case &#8220;smallmoney&#8221;: return &#8220;SmallMoney&#8221;;<br />
		case &#8220;sql_variant&#8221;: return &#8220;Variant&#8221;;<br />
		case &#8220;sysname&#8221;: return &#8220;NChar&#8221;;<br />
		case &#8220;text&#8221;: return &#8220;Text&#8221;;<br />
		case &#8220;timestamp&#8221;: return &#8220;Timestamp&#8221;;<br />
		case &#8220;tinyint&#8221;: return &#8220;TinyInt&#8221;;<br />
		case &#8220;uniqueidentifier&#8221;: return &#8220;UniqueIdentifier&#8221;;<br />
		case &#8220;varbinary&#8221;: return &#8220;VarBinary&#8221;;<br />
		case &#8220;varchar&#8221;: return &#8220;VarChar&#8221;;<br />
		default: return &#8220;__UNKNOWN__&#8221; + column.NativeType;<br />
	}<br />
}</p>
<p>public string GetPrimaryKeyType(TableSchema table)<br />
{<br />
	if (table.PrimaryKey != null)<br />
	{<br />
		if (table.PrimaryKey.MemberColumns.Count == 1)<br />
		{<br />
			return GetCSharpVariableType(table.PrimaryKey.MemberColumns[0]);<br />
		}<br />
		else<br />
		{<br />
			throw new ApplicationException(&#8220;This template will not work on primary keys with more than one member column.&#8221;);<br />
		}<br />
	}<br />
	else<br />
	{<br />
		throw new ApplicationException(&#8220;This template will only work on tables with a primary key.&#8221;);<br />
	}<br />
}</p>
<p>public string GetPrimaryKeyName(TableSchema table)<br />
{<br />
	if (table.PrimaryKey != null)<br />
	{<br />
		if (table.PrimaryKey.MemberColumns.Count == 1)<br />
		{<br />
			return table.PrimaryKey.MemberColumns[0].Name;<br />
		}<br />
		else<br />
		{<br />
			throw new ApplicationException(&#8220;This template will not work on primary keys with more than one member column.&#8221;);<br />
		}<br />
	}<br />
	else<br />
	{<br />
		throw new ApplicationException(&#8220;This template will only work on tables with a primary key.&#8221;);<br />
	}<br />
}</p>
<p>public string GetPrimaryKeyParameters(TableSchema table, bool includeTypes)<br />
{<br />
    string parameters = &#8220;&#8221;;<br />
	if (table.PrimaryKey != null)<br />
	{<br />
		for( int i = 0; i &lt; table.PrimaryKey.MemberColumns.Count; i++ )<br />
		{<br />
			if(parameters.Length == 0)<br />
			{<br />
				if( includeTypes )<br />
					parameters = parameters;// + &#8220;ByVal &#8220;;</p>
<p>				parameters = parameters + GetCamelCaseName(table.PrimaryKey.MemberColumns[i].Name);</p>
<p>				if( includeTypes )<br />
				{<br />
					parameters = GetCSharpVariableType(table.PrimaryKey.MemberColumns[i]) + &#8221; &#8221; + parameters + &#8221; &#8220;;<br />
				}<br />
			}<br />
			else<br />
			{<br />
				parameters = parameters + &#8220;, &#8220;;<br />
				if( includeTypes )<br />
					parameters = parameters;// + &#8220;ByVal &#8220;;</p>
<p>				parameters = parameters + GetCamelCaseName(table.PrimaryKey.MemberColumns[i].Name);</p>
<p>				if( includeTypes )<br />
				{<br />
					parameters = GetCSharpVariableType(table.PrimaryKey.MemberColumns[i]) + &#8221; &#8221; + parameters + &#8221; &#8220;;<br />
				}<br />
			}<br />
		}<br />
	}<br />
	else<br />
	{<br />
		throw new ApplicationException(&#8220;This template will only work on tables with a primary key.&#8221;);<br />
	}<br />
	return parameters;<br />
}</p>
<p>public string GetNonPrimaryKeyParameters(TableSchema table, bool includeTypes)<br />
{<br />
    string parameters = &#8220;&#8221;;<br />
	if (table.PrimaryKey != null)<br />
	{<br />
		for( int i = 0; i &lt; table.NonPrimaryKeyColumns.Count; i++ )<br />
		{<br />
			if(parameters.Length == 0)<br />
			{<br />
				if( includeTypes )<br />
					parameters = parameters;// + &#8220;ByVal &#8220;;</p>
<p>				if( includeTypes )<br />
				{<br />
					parameters = GetCSharpVariableType(table.NonPrimaryKeyColumns[i]) + &#8221; &#8221; + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name) + &#8221; &#8220;;<br />
				}<br />
				else<br />
				{<br />
					parameters = parameters + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name);<br />
				}<br />
			}<br />
			else<br />
			{<br />
				parameters = parameters + &#8220;, &#8220;;<br />
				if( includeTypes )<br />
					parameters = parameters;// + &#8220;ByVal &#8220;;</p>
<p>				if( includeTypes )<br />
				{<br />
					parameters = parameters + GetCSharpVariableType(table.NonPrimaryKeyColumns[i]) + &#8221; &#8221; + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name) + &#8221; &#8220;;<br />
				}<br />
				else<br />
				{<br />
					parameters = parameters + GetCamelCaseName(table.NonPrimaryKeyColumns[i].Name);<br />
				}<br />
			}<br />
		}<br />
	}<br />
	else<br />
	{<br />
		throw new ApplicationException(&#8220;This template will only work on tables with a primary key.&#8221;);<br />
	}<br />
	return parameters;<br />
}</p>
<p>public string GetPrimaryKeyParametersForObject(TableSchema table, string obj)<br />
{<br />
    string parameters = &#8220;&#8221;;<br />
	if (table.PrimaryKey != null)<br />
	{<br />
		for( int i = 0; i &lt; table.PrimaryKey.MemberColumns.Count; i++ )<br />
		{<br />
			if(parameters.Length == 0)<br />
			{<br />
				parameters = parameters + obj + &#8220;.&#8221; + table.PrimaryKey.MemberColumns[i].Name;<br />
			}<br />
			else<br />
			{<br />
				parameters = parameters + &#8220;, &#8220;;<br />
				parameters = parameters + obj + &#8220;.&#8221; + table.PrimaryKey.MemberColumns[i].Name;<br />
			}<br />
		}<br />
	}<br />
	else<br />
	{<br />
		throw new ApplicationException(&#8220;This template will only work on tables with a primary key.&#8221;);<br />
	}<br />
	return parameters;<br />
}</p>
<p>public string GetNonPrimaryKeyParametersForObject(TableSchema table, string obj)<br />
{<br />
    string parameters = &#8220;&#8221;;</p>
<p>	for( int i = 0; i &lt; table.NonPrimaryKeyColumns.Count; i++ )<br />
	{<br />
		if(parameters.Length == 0)<br />
		{<br />
			parameters = parameters + obj + &#8220;.&#8221; + table.NonPrimaryKeyColumns[i].Name;<br />
		}<br />
		else<br />
		{<br />
			parameters = parameters + &#8220;, &#8220;;<br />
			parameters = parameters + obj + &#8220;.&#8221; + table.NonPrimaryKeyColumns[i].Name;<br />
		}<br />
	}</p>
<p>	return parameters;<br />
}</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.243 seconds -->
