isCommend = int.Parse(sdr["GoodsSpecial"].ToString());显示输入字符串的格式不正确,请教各位。

这是GridView里的LinkButton特价按钮,前台代码如下:<asp:TemplateFieldHeaderText="特价"ShowHeader="False"... 这是GridView里的LinkButton特价按钮,前台代码如下:
<asp:TemplateField HeaderText="特价" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="btnCommedn" runat="server" CausesValidation="false" CommandArgument='<%# Bind("GoodsID")%>'
CommandName="" OnClick="btnCommend_Click" Text='<%# Eval("GoodsSpecial").ToString()=="1" ?"是":"否"%>'
ToolTip="特价"></asp:LinkButton>
</ItemTemplate>

后台Click事件,数据库Clothing表中GoodsSpecial 内容为是或否。
protected void btnCommend_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(((LinkButton)sender).CommandArgument.ToString());
int isCommend = 1;
SqlDataReader sdr;
sdr = data.GetDataReader("select GoodsSpecial from [Clothing] where GoodsID=" + id);
sdr.Read();
isCommend = int.Parse(sdr["GoodsSpecial"].ToString());
//如果原来为推荐则改为不推荐
if (isCommend == 1)
{
data.RunSql("update [Clothing] set GoodsSpecial='否' where GoodsID=" + id);
}
else
{
data.RunSql("update [Clothing] set GoodsSpecial='是' where GoodsID=" + id);
}
js.Alertjs("设为特价婚纱成功!");
//绑定
Get_Info();
}
展开
 我来答
胡徕说运营
2013-04-19 · 超过19用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:37.4万
展开全部
很明显sdr["GoodsSpecial"].ToString() 内容为 文字 “是”或“否” 使用int.Parse转换肯定会错。
isCommend = int.Parse(sdr["GoodsSpecial"].ToString()); 修改为
isCommend = "是".Equals(sdr["GoodsSpecial"].ToString()) ? 1 : 0;
追问
非常感谢出错的问题是解决了,但是GridView里显示的特价是或否不会改一直是否没变,在我按了以后提示成功了,数据库里也的确是改了,不知道是怎么回事?
追答
因为你在btnCommend_Click事件中只做了,数据库的修改提交,界面上的数据没有重新读取。
有2个方法可以解决:
1、重新加载页面
2、web页写一个js方法,在btnCommend_Click事件中调用,用于修改GridView的数据。
百度网友0ed4d70
2013-04-19 · 超过12用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:27.2万
展开全部
请检查下你的数据库中 GoodsSpecial 这个栏位的类型,我怀疑你的栏位是整型,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
641964922
2013-04-19 · 超过33用户采纳过TA的回答
知道答主
回答量:169
采纳率:0%
帮助的人:91.5万
展开全部
sdr["GoodsSpecial"].ToString()是数字吗?
追问
GoodsSpecial数据库里是字符串,存是或者否,但是前台HTML里这个按钮有
'
CommandName="" OnClick="btnCommend_Click" Text=''
这个1的条件语句是不是和后台 if (isCommend == 1)有关系?有点被搞晕了
追答
你写的isCommend = int.Parse(sdr["GoodsSpecial"].ToString());isCommend的值就是Eval("GoodsSpecial").ToString()的值。但是sdr["GoodsSpecial"].ToString()是数字么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式