C# 从GridView返回的值错误
我使用的是一个GridView,e,由SQL Server存储过程填充。 当试图从GV中提取特定单元格值时,我的代码返回了错误的值和类型;我不明白为什么:C# 从GridView返回的值错误,c#,asp.net,sql-server,gridview,C#,Asp.net,Sql Server,Gridview,我使用的是一个GridView,e,由SQL Server存储过程填充。 当试图从GV中提取特定单元格值时,我的代码返回了错误的值和类型;我不明白为什么: String itemSummary = e.Row.Cells[4].Text; String itemTotal = e.Row.Cells[8].Text; 尽管数据库表中的数据类型为double 18,2,存储过程正在成功检索数据并填充GV,但当我提取itemSummary时,代码返回“Cn”。以完全相同的方式提取的itemTota
String itemSummary = e.Row.Cells[4].Text;
String itemTotal = e.Row.Cells[8].Text;
尽管数据库表中的数据类型为double 18,2,存储过程正在成功检索数据并填充GV,但当我提取itemSummary时,代码返回“Cn”。以完全相同的方式提取的itemTotal将按预期返回。看着GridView,我甚至看不出“Cn”是从哪里来的
当我使用断点逐步遍历代码时,我可以深入到行的ItemArray中,清楚地看到行索引[4]处的预期值,但是e.Row.Cells[4]。Text
仍然返回字符串“Cn”
同样e.Row.Cells[8]。Text
返回与行的ItemArray中的行索引[8]表示的值相同的值
我需要帮助;如果您有任何想法,我将不胜感激。我会尝试打印整个表格,看看返回了哪些值。行循环中的单元格循环应该使您更清楚地看到正在发生的事情。请记住将间距放在打印值的前面,并\n放在行的末尾
祝你好运 返回错误值的字段被格式化为货币。事实证明,格式已经应用于标记和代码隐藏中;这似乎是造成问题的原因。一旦从标记中删除了格式,问题就解决了。请尝试使用列名检索值,以确保它得到的正是您想要的。在哪种情况下,您尝试访问这些值?如果使用的是
TemplateField
而不是BoundField
,则使用FindControl
方法查找ItemTemplate
中声明的相应控件,并尝试访问Text
属性。