错误提示:输入字符串的格式有误 50

Gridview1的第三列是数量,第四列是单价,textbox1是gridview1里面的第三列编辑状态protectedvoidTextBox1_TextChanged... Gridview1 的第三列是数量,第四列是单价,textbox1是gridview1里面的第三列 编辑状态

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{

int a = Convert.ToInt16(GridView1.Rows[i].Cells[3].Text.ToString());
double b = Convert.ToDouble(GridView1.Rows[i].Cells[4].Text.ToString());
GridView1.Rows[i].Cells[5].Text = Convert.ToString(a*b);
}
}
展开
 我来答
akqg218
2011-05-24 · TA获得超过766个赞
知道小有建树答主
回答量:866
采纳率:0%
帮助的人:478万
展开全部

用%d接收的是数字,输入字符会引发错误,而接收的变量并没有得到值,所以还是上一次的值,
并且键入的字符还在缓冲区没有取出,所以需要手动取出getchar()或直接清空fflush(stdin)
if(!scanf("%d",&flag))
{
fflush(stdin);
flag = -1;
}
其他输入也要适当处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e5436b3
2011-05-23 · 超过27用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:67.4万
展开全部
你确定你输入的时候是数字?
其实这种要做一个Check的。这个应该是你输入字符串然后Convert的时候报错了。
追问
前台还验证过是否 正整数的  不可能输入字符串
追答
GridView1.Rows[i].Cells[4].Text.Trim()试下,看是不是因为空格的原因。
另,能具体指出是哪一行出错吗?单步调试应该会知道是哪里出错的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyx_1105
2011-05-23
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
第三列对应Cells[2],所以应为:
int a = Convert.ToInt16(GridView1.Rows[i].Cells[2].Text.ToString());
double b = Convert.ToDouble(GridView1.Rows[i].Cells[3].Text.ToString());
GridView1.Rows[i].Cells[4].Text = Convert.ToString(a*b);
追问
列数 是没错的 从0开始算的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哀健柏9G
2011-05-24 · TA获得超过101个赞
知道答主
回答量:126
采纳率:0%
帮助的人:110万
展开全部
你一个转换为TOint16 一个转换为ToDouble a*b 这样好像不行 类型不一样 你需要把类型转换为一样的才可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
buyaowang_hao
2011-05-27 · 超过10用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:24.7万
展开全部
出现这个错误肯定是有值是null或者“”在转换成int或者double时报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式