Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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中的TemplateField_C#_Asp.net_Forms_Gridview_Web - Fatal编程技术网

C# 输入字符串的格式不正确,GridView中的TemplateField

C# 输入字符串的格式不正确,GridView中的TemplateField,c#,asp.net,forms,gridview,web,C#,Asp.net,Forms,Gridview,Web,我在GridView控件中有一个模板字段,如下所示 <asp:TemplateField HeaderText="Total" SortExpression="CYTotal"> <ItemTemplate> <asp:Label ID="lblCYTotal" runat="server" MaxLength="20" Width="30" ReadOnly ="true"

我在GridView控件中有一个模板字段,如下所示

<asp:TemplateField HeaderText="Total" SortExpression="CYTotal">            
            <ItemTemplate>
              <asp:Label ID="lblCYTotal" runat="server" MaxLength="20" Width="30" ReadOnly ="true"
                Text = '<%# Bind("CYTotal","{0:#,##0}") %>' Font-Names="Tahoma" Font-Size="8pt"> </asp:Label>
            </ItemTemplate>        
               <HeaderStyle Width="30px" Font-Names="Tahoma" Font-Size="8pt"/>
              <ItemStyle Width="30px" HorizontalAlign="Right" />    
          </asp:TemplateField>
然后,在RowUpdate事件中,我使用了下面的代码,但它给出了错误“*输入字符串的格式不正确”。 我试着用下面的“替换”删除“%”符号,但没有成功。我还试着使用NumberStyles.Currency和NumberStyles.Float

decimal currency = decimal.Parse(lblCYTotal.Text.Replace("%",""), NumberStyles.Any);

任何帮助都将不胜感激

好的,我发现了问题。从数据库中提取的一行中有一个空值。我让它显示为零(使用ISNULL函数),错误消失了。我不确定这是否是最好的方法,但我想不出其他方法


我在代码中有if语句来检查空值,只格式化非空值,但它不起作用。

为什么不替换$?因为从你的代码来看,你的文本框中可能有$。如果是,那么它肯定会给你一个例外。谢谢Manish,我应该提到我尝试替换$和%,但仍然得到相同的错误。好的,但你没有提到在哪一行出现错误,以及出现错误时文本框的文本是什么。
decimal currency = decimal.Parse(lblCYTotal.Text.Replace("%",""), NumberStyles.Any);