<script>
      public string GetLengthText(ColumnSchema column)
      {
          string result = string.Empty;
          switch(column.DataType)
          {
             case "char":
             case "varchar":
             case "nchar":
             case "nvarchar":
                result = "(" + column.Length.ToString() + ")";
                break;
                
             default:
               break;
          }
          
          return result;
      }
      
      
      private string GetScript(ColumnSchema column)
        {
            if (column == null) return string.Empty;

            string result = string.Empty;

            if (column.AllowDBNull == true)
            {
                switch (column.EnterpriseLibraryDataType)
                {
                    case "DbType.String":
                        result = string.Format("row[\"{0}\"] = string.IsNullOrEmpty(item.{0}) ? DBNull.Value : (object)item.{0};", column.AliasColumnName);
                        
                        break;

                    default:
                        result = string.Format("row[\"{0}\"] = item.{0}.HasValue ? (object)item.{0} : DBNull.Value;", column.AliasColumnName);

                        break;
                }
            }
            else
            {
                result = string.Format("row[\"{0}\"] = item.{0};", column.AliasColumnName);
            }

            return result;
        }
      
      
      
      
      
      
      
   </script>
       
     <% foreach (ColumnSchema column in Table.Columns) { 
       	switch(column.CSDataType){
            		case "DateTime": %>
       <%= column.AliasName %> = row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>").ToString("yyyy-MM-dd"), <%
            		    break;
            		case "DateTime?": %>
       <%= column.AliasName %> = row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>").HasValue ? row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>").Value.ToString("yyyy-MM-dd") : string.Empty,	<%
            	       break;
            	   default:   %> 	
       <%= column.AliasName %> = row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>"), <% break; } } %>
       
       
       
       
       
    DbCommand deletedCommand = conn.CreateCommand();
    deletedCommand.CommandText = "DELETE FROM <%= Table.aliasName %>";
    deletedCommand.ExecuteNonQuery();

    DbCommand insertedCommand = conn.CreateCommand();
    insertedCommand.CommandText = "<%= Table.SqlBuilder.GetInsertCommandText(true) %>";

    <% foreach (ColumnSchema column in Table.Columns) { %>    
            insertedCommand.Parameters.Add(new SQLiteParameter("<%= column.AliasName %>"));  <% } %>


    int affectedRecords = 0;
    foreach (var item in list)
    {
        <% foreach (ColumnSchema column in Table.Columns) { %>    
            insertedCommand.Parameters["<%= column.AliasName %>"].Value = item.<%= column.AliasName %>;  <% } %>
              
                affectedRecords += insertedCommand.ExecuteNonQuery();
    }

    return affectedRecords;
    
    
            <% foreach (ColumnSchema column in Table.Columns) { %> 
                   <%= GetScript(column) %> <% } %>