<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) %> <% } %>