【问题标题】:Cannot change DataType of a column once it has data一旦有数据,就无法更改列的 DataType
【发布时间】:2011-03-21 08:20:28
【问题描述】:

我想按日期时间列对网格视图进行排序,所以我需要更改该列的数据类型

我尝试使用以下代码,但出现错误:

dt.DefaultView.Table.Columns["Meldingsdatum"].DataType = Type.GetType("System.DateTime");

dt.DefaultView.Sort = "Meldingsdatum asc";
gvOutlookMeldingen.DataSource = dt;
gvOutlookMeldingen.DataBind();

【问题讨论】:

  • 为什么源数据中的列不是以DateTime开头的?
  • 你可以点击datetimeheader,它会按asc和desc...
  • 它不会将其排序为日期时间,而是作为字符串。所以我必须更改它的类型并将其排序为日期时间
  • 是的,但是当您明确希望它是日期时间时,为什么它会作为字符串从数据库中读取呢?将其转换为 SQL 查询中的日期时间,而不是事后尝试对其进行操作。
  • 我没有从任何数据库中读取它。

标签: c# gridview datatable types dataview


【解决方案1】:

错误信息在这里告诉你你需要知道的一切; 要么(并且首选)将列设为DateTime最初(重要的是:在加载数据之前),或者绕过它。我的意思是可能添加一个 second 列 (DateTime),然后将数据推送到整个 - 无缘无故的低效和额外工作。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多