C# 尝试查找GridView中两列值之间的差异
我试图找出网格中两列之间的差异,并在第三列中显示出来。但是,我得到以下错误: 输入字符串的格式不正确 以下是我目前的代码:C# 尝试查找GridView中两列值之间的差异,c#,asp.net,gridview,C#,Asp.net,Gridview,我试图找出网格中两列之间的差异,并在第三列中显示出来。但是,我得到以下错误: 输入字符串的格式不正确 以下是我目前的代码: <asp:TemplateField HeaderText="Issued Quantity"SortExpression="Issued_Quantity"> <ItemTemplate> <asp:Label ID="txtIssued_Quantity" runat="server" Text='<%# Proce
<asp:TemplateField HeaderText="Issued Quantity"SortExpression="Issued_Quantity">
<ItemTemplate>
<asp:Label ID="txtIssued_Quantity" runat="server" Text='<%# ProcessMyDataItem(Eval("Issued_Quantity")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Returned Quantity" SortExpression="Return_Quantity">
<ItemTemplate>
<asp:Label ID="txtReturn_Quantity" runat="server" Text='<%# ProcessMyDataItem(Eval("Return_Quantity")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Actual Used Quantity" SortExpression="txtQty1">
<ItemTemplate>
<asp:TextBox ID="txtQty" runat="server" Enabled="False" Height="27px" Text='<%# Convert.ToDouble(Eval("Issued_Quantity")) - Convert.ToDouble(Eval("Return_Quantity"))%>' Width="73px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
尝试使用此
计算数据库查询本身中的实际数量
Select Issued_Quantity, Return_Quantity, convert(decimal(4,2),Issued_Quantity) - convert(decimal(4,2),Return_Quantity) as Actual_Quantity from [YourTable]
然后像这样编辑代码
<asp:TemplateField HeaderText="Actual Used Quantity" SortExpression="txtQty1">
<ItemTemplate>
<asp:TextBox ID="txtQty" runat="server" Enabled="False" Height="27px" Text='<%# ProcessMyDataItem(Eval("Actual_Quantity ")) %>' Width="73px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
希望这会有帮助
注:小数点(4,2)用于指示。您可以根据实际数据进行更改
还有一项观察与这个问题无关,但总体而言。请勿在px中使用高度。它会干扰你的用户界面。尝试使用%的高度,例如20%。它根据屏幕大小保持格式设置 什么
Eval(“退货数量”)
和Eval(“已发数量”)
准确返回,您的CurrentCulture
是什么?您的计算语法似乎有点奇怪。您确定为Convert
方法获得了正确的值吗?它将显示数据库中的十进制数。在数据库中,返回数量和发出数量是“NVARCHAR”。为什么将小数存储为NVARCHAR?请尝试decimal.Parse(Eval(“发出数量”),CultureInfo.InvariantCulture)