temp.cst 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <script>
  2. public string GetLengthText(ColumnSchema column)
  3. {
  4. string result = string.Empty;
  5. switch(column.DataType)
  6. {
  7. case "char":
  8. case "varchar":
  9. case "nchar":
  10. case "nvarchar":
  11. result = "(" + column.Length.ToString() + ")";
  12. break;
  13. default:
  14. break;
  15. }
  16. return result;
  17. }
  18. private string GetScript(ColumnSchema column)
  19. {
  20. if (column == null) return string.Empty;
  21. string result = string.Empty;
  22. if (column.AllowDBNull == true)
  23. {
  24. switch (column.EnterpriseLibraryDataType)
  25. {
  26. case "DbType.String":
  27. result = string.Format("row[\"{0}\"] = string.IsNullOrEmpty(item.{0}) ? DBNull.Value : (object)item.{0};", column.AliasColumnName);
  28. break;
  29. default:
  30. result = string.Format("row[\"{0}\"] = item.{0}.HasValue ? (object)item.{0} : DBNull.Value;", column.AliasColumnName);
  31. break;
  32. }
  33. }
  34. else
  35. {
  36. result = string.Format("row[\"{0}\"] = item.{0};", column.AliasColumnName);
  37. }
  38. return result;
  39. }
  40. </script>
  41. <% foreach (ColumnSchema column in Table.Columns) {
  42. switch(column.CSDataType){
  43. case "DateTime": %>
  44. <%= column.AliasName %> = row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>").ToString("yyyy-MM-dd"), <%
  45. break;
  46. case "DateTime?": %>
  47. <%= column.AliasName %> = row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>").HasValue ? row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>").Value.ToString("yyyy-MM-dd") : string.Empty, <%
  48. break;
  49. default: %>
  50. <%= column.AliasName %> = row.Field<<%= column.CSDataType %>>("<%= column.AliasName %>"), <% break; } } %>
  51. DbCommand deletedCommand = conn.CreateCommand();
  52. deletedCommand.CommandText = "DELETE FROM <%= Table.aliasName %>";
  53. deletedCommand.ExecuteNonQuery();
  54. DbCommand insertedCommand = conn.CreateCommand();
  55. insertedCommand.CommandText = "<%= Table.SqlBuilder.GetInsertCommandText(true) %>";
  56. <% foreach (ColumnSchema column in Table.Columns) { %>
  57. insertedCommand.Parameters.Add(new SQLiteParameter("<%= column.AliasName %>")); <% } %>
  58. int affectedRecords = 0;
  59. foreach (var item in list)
  60. {
  61. <% foreach (ColumnSchema column in Table.Columns) { %>
  62. insertedCommand.Parameters["<%= column.AliasName %>"].Value = item.<%= column.AliasName %>; <% } %>
  63. affectedRecords += insertedCommand.ExecuteNonQuery();
  64. }
  65. return affectedRecords;
  66. <% foreach (ColumnSchema column in Table.Columns) { %>
  67. <%= GetScript(column) %> <% } %>