Вы не показали, где вы их отображаете. Все, что у нас есть, это ячейка базы данных и объект в памяти, оба из которых являются просто хранилищем. Для целей хранения .00
и .0000
- это одно и то же. Попытка перевести с одного на другое - пустая трата ресурсов. Покажите нам, где вы показываете это пользователю, и мы поможем вам отформатировать его так, как вы хотите.
Кроме того, в качестве личного предпочтения я написал бы такой код:
private static ToProduct(this IDataRecord record)
{
var product = new Product();
product.Id = record.GetInt32(record.GetOrdinal("Id"));
product.ManufacturerId = record.GetInt32(record.GetOrdinal("ManufacturerId"));
product.CategoryId = record.GetInt32(record.GetOrdinal("CategoryId"));
product.Name = record.GetString(record.GetOrdinal("Name"));
product.Description = record.GetString(record.GetOrdinal("Description"));
product.Price = record.GetDecimal(record.GetOrdinal("Price"));
product.ItemsInStokc = record.GetInt32(record.GetOrdinal("ItemsInStock"));
return product;
}
public static IEnumerable<Product> GetAllProducts()
{
string sqlQuery = "SELECT * FROM Products";
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(sqlQuery, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
yield return reader.ToProduct();
}
}
}
}
Обновление:
Вы прокомментировали, что это будет в GridView. Хорошо. В этом случае все, что вам нужно сделать, это указать в столбце DataFormatString
, например:
<asp:GridView runat="server" id="TestView" ... >
<Columns>
<asp:BoundField DataFormatString="{0:F2}" />
...
</Columns>
</asp:GridView>