C# 如何将string.Format应用于SQL结果?

C# 如何将string.Format应用于SQL结果?,c#,.net,casting,string.format,intersystems-cache,C#,.net,Casting,String.format,Intersystems Cache,在我的应用程序中,我正在查询数据库,并希望对我的结果应用string.Format(“{0:n}”),以便结果包含逗号和小数 但是,我很难让它正常工作。代码经过编译,一切正常,但数字的格式不是我想要的 这是我目前的代码: using (CacheConnection myConnection = new CacheConnection()) { myConnection.ConnectionTimeout = 9999; myConnection.ConnectionString

在我的应用程序中,我正在查询数据库,并希望对我的结果应用
string.Format(“{0:n}”)
,以便结果包含逗号和小数

但是,我很难让它正常工作。代码经过编译,一切正常,但数字的格式不是我想要的

这是我目前的代码:

using (CacheConnection myConnection = new CacheConnection())
{
    myConnection.ConnectionTimeout = 9999;
    myConnection.ConnectionString = monthPropStruct.connectionString;
    myConnection.Open();

    using (CacheCommand myCommand = new CacheCommand(sqlTest, myConnection))
    {
        myCommand.CommandTimeout = 9999;
        using (CacheDataReader myReader = myCommand.ExecuteReader())
        {
            while (myReader.Read())
            {
                myWriter = new StreamWriter(myParameters.fullSaveDirectory, true);
                myWriter.WriteLine("Amount: $" + string.Format("{0:n}", myReader[myReader.GetOrdinal("total_amt")]));
                myWriter.Close();
             }
         }
     }
 }

我得到的当前结果是“245687”或其他什么,但我希望它显示为245678.00,字符串格式将适用于数值,而您的代码
myReader[myReader.GetOrdinal(“total_amt”)])
将返回一个对象。将值转换为数字,然后应用如下格式:

Convert.ToDecimal((myReader[myReader.GetOrdinal("total_amt")]))
或使用:

pReader.GetDecimal(pReader.GetOrdinal("total_amt"))

(我相信你有
Decimal
货币类型,无论如何它应该是用于货币的类型。)

首先将你的值转换为十进制。@Rakitić,是的,这正是我需要做的。谢谢您还可以使用
string.Format(“{0:C}”
,并从字符串
“Amount:$”
中删除
$
,因为$将自动添加。哈哈。我觉得自己很笨。非常感谢!