我有一个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();
但即使是两位数,它也显示为&#34; 0012&#34;但它需要是&#34; 012&#34;我该如何处理这个
答案 0 :(得分:2)
试试这个:
qr.CounterSeq =reader["CounterSeq"].ToString("0000");
答案 1 :(得分:2)
您可以使用PadLeft
qr.CounterSeq = reader["CounterSeq"].ToString().PadLeft(3, '0');
返回指定长度的新字符串,其中当前字符串的开头用空格或指定的Unicode字符填充。
答案 2 :(得分:0)
你可以试试这个:
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