Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试查找GridView中两列值之间的差异_C#_Asp.net_Gridview - Fatal编程技术网

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)