1

我在 Asp.Net(C#) 中有一个简单的表单,用户可以在其中输入他的详细信息。详细信息包括用户的总土地面积及其单位(公顷、米、英尺等)。此详细信息保存到 Sql 数据库中。此详细信息应显示在网格视图中。我已经做到了这一点,但我的问题是土地面积将以一个共同的单位(公顷)显示。限制是在从数据库中获取提交的数据时应该转换它。有没有人有解决方案。

4

1 回答 1

1

您的方案的简单选项是:

  • 如果您的数据库系统支持它们(例如 SQL Server 支持),则直接在数据库上创建一个计算列并从存储过程中返回它

  • 修改用于获取数据的存储过程,以便它进行转换(例如,在 SQL Server 中使用 case 语句

    case t.unit
        当 'hectare' 然后 t.area
        当 'sqmeter' 然后 t.area / 10000
        当 'sqfeet' 然后 t.area / xxxx
    end

  • 在数据表中添加一列并在绑定数据之前计算值(数据表也可以有计算列,但公式语法非常有限,因此在 C# 中手动执行似乎更好)

    table.Columns.Add("AreaInHectare");
    foreach (var row in table) {
        row["AreaInHectare"] = GetAreaInHectare((decimal)row["Area"], (string)row["Unit"];
    }

很可能您还想应用一些舍入来去除不需要的小数位。

于 2013-01-05T12:29:58.253 回答