【问题标题】:Format the response from the Web API格式化来自 Web API 的响应
【发布时间】:2016-12-22 17:12:50
【问题描述】:

我有一个 Web API 运行一个存储过程并从表中返回记录。记录包括名为 CounterSeq 的 int 字段

[HttpGet]
public IHttpActionResult Get(string Account)
{
 // other code for connecting to the SQL seerver and calling the stored procedure
 reader = command.ExecuteReader(); 
 List<QueryResult>qresults = new List<QueryResult>();
   while (reader.Read())
   {
       QueryResult qr = new QueryResult();
       qr.AccountID = reader["AccountID"].ToString();
       qr.CounterSeq = reader["CounterSeq"].ToString();
       qresults.Add(qr);
   }
   DbConnection.Close();
   return Ok(qresults); 

响应中 CounterSeq 的格式应该是 001。如果我在下面添加他这样的语句

  qr.CounterSeq ="00"+ reader["CounterSeq"].ToString();

但是即使是两位数,它也显示为“0012”,但它必须是“012”,我该如何处理这个

【问题讨论】:

    标签: c# asp.net-web-api


    【解决方案1】:

    你可以使用PadLeft

     qr.CounterSeq = reader["CounterSeq"].ToString().PadLeft(3, '0');
    

    返回一个指定长度的新字符串,其中当前字符串的开头用空格或指定的 Unicode 字符填充。

    【讨论】:

      【解决方案2】:

      试试这个:

      qr.CounterSeq =reader["CounterSeq"].ToString("0000");

      【讨论】:

      • 它抛出错误 1 ​​方法 'ToString' 没有重载需要 1 个参数
      • 你用的是什么版本的visual studio?
      • 我有Visual Studio 2013
      【解决方案3】:

      你可以试试这个:

      qr.CounterSeq = reader.GetInt32(reader.GetOrdinal("CounterSeq")).ToString("D4");
      

      这里是带有 1 个参数的 ToString 错误的答案: no overload for method "ToString" takes 1 arguments

      您可以在此处阅读有关小数 (“D”) 格式说明符的更多信息: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2018-12-06
        • 2013-08-08
        • 1970-01-01
        • 2021-08-19
        相关资源
        最近更新 更多