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