积极答复者
谁能帮我看看,这个数组赋值的问题

问题
-
因为需要,所以要写一个用FOR语句赋值的数组,当引用这个数组的时候却提示这样的问题
输入字符串的格式不正确。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 输入字符串的格式不正确。
源错误:
for (int i = 1; i <= shu; i++)
{
guzhang[i] = i + "#泵故障" ;
Label1.Text = guzhang[i]; //这是为了测试数组好不好使,这显示时正常的
}
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds5.Tables[" + tableName1 + "].DefaultView[i];
for (int p = 1; p <= shu; p++)
{
string score = Convert.ToString(mydrv[guzhang[P]]); //经过测试,我知道错误指的是这里的数组不对,这是为什么呢
//string score = Convert.ToString(mydrv[guzhang[2]]);//当我用 这样赋值的时候就可以运行
if (int.Parse(score) < 5)
{
GridView1.Rows[i].Cells[p].Attributes.Add("style", "color:red"); //设置字体颜色
}
}
}
答案
全部回复
-
因为需要,所以要写一个用FOR语句赋值的数组,当引用这个数组的时候却提示这样的问题
输入字符串的格式不正确。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 输入字符串的格式不正确。
源错误:
for (int i = 1; i <= shu; i++)
{
guzhang[i] = i + "#泵故障" ;
Label1.Text = guzhang[i]; //这是为了测试数组好不好使,这显示时正常的
}
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds5.Tables[" + tableName1 + "].DefaultView[i];
for (int p = 1; p <= shu; p++)
{
string score = Convert.ToString(mydrv[guzhang[P]]); //经过测试,我知道错误指的是这里的数组不对,这是为什么呢
//string score = Convert.ToString(mydrv[guzhang[2]]);//当我用 这样赋值的时候就可以运行
if (int.Parse(score) < 5)
{
GridView1.Rows[i].Cells[p].Attributes.Add("style", "color:red"); //设置字体颜色
}
}
}
Wright -
比方数数据源只有5个段,那么最大的 Index 应该是 4 这里你输个 5 自然就出错了shu 是什么,是数据源字段的字数吗 如果是把 for (int p = 1; p <= shu; p++) 改为 for (int p = 1; p < shu; p++)P 是大写的,是 for 定义的那个 小写 p 吗, 是自己打错了吗,还是在外面定义了一个常量?if (int.Parse(score) < 5)
{
GridView1.Rows[i].Cells[p].Attributes.Add("style", "color:red"); //设置字体颜色
}可以改一下, 这样在数据量大的时候性能会提高很多int k; if (int.TryParse(score, out k)) { if (k < 5) { GridView1.Rows[i].Cells[p].Attributes.Add("style", "color:red"); //设置字体颜色 } }
知识改变命运,奋斗成就人生! -
这个是我的gridview
<asp:GridView ID="GridView1" runat="server" Width="550px"
AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound"
CellPadding="4" ForeColor="#333333" GridLines="None">
<Columns>
<asp:BoundField DataField="日期" HeaderText="日期" />
<asp:BoundField DataField="1#泵故障" HeaderText="1#泵故障" />
<asp:BoundField DataField="2#泵故障" HeaderText="2#泵故障" />
<asp:BoundField DataField="3#泵故障" HeaderText="3#泵故障" />
<asp:BoundField DataField="4#泵故障" HeaderText="4#泵故障" />
<asp:BoundField DataField="5#泵故障" HeaderText="5#泵故障" />
<asp:BoundField DataField="6#泵故障" HeaderText="6#泵故障" />
<asp:BoundField DataField="7#泵故障" HeaderText="7#泵故障" />
<asp:BoundField DataField="8#泵故障" HeaderText="8#泵故障" />
<asp:BoundField DataField="9#泵故障" HeaderText="9#泵故障" />
<asp:BoundField DataField="10#泵故障" HeaderText="10#泵故障" />
<asp:BoundField DataField="11#泵故障" HeaderText="11#泵故障" />
<asp:BoundField DataField="12#泵故障" HeaderText="12#泵故障" />
<asp:BoundField DataField="13#泵故障" HeaderText="13#泵故障" />
<asp:BoundField DataField="14#泵故障" HeaderText="14#泵故障" />
<asp:BoundField DataField="15#泵故障" HeaderText="15#泵故障" />
<asp:BoundField DataField="16#泵故障" HeaderText="16#泵故障" />
<asp:BoundField DataField="17#泵故障" HeaderText="17#泵故障" />
<asp:BoundField DataField="18#泵故障" HeaderText="18#泵故障" />
<asp:BoundField DataField="19#泵故障" HeaderText="19#泵故障" />
<asp:BoundField DataField="20#泵故障" HeaderText="20#泵故障" />
<asp:BoundField DataField="21#泵故障" HeaderText="21#泵故障" />
<asp:BoundField DataField="22#泵故障" HeaderText="22#泵故障" />
<asp:BoundField DataField="23#泵故障" HeaderText="23#泵故障" />
<asp:BoundField DataField="24#泵故障" HeaderText="24#泵故障" />
<asp:BoundField DataField="25#泵故障" HeaderText="25#泵故障" />
<asp:BoundField DataField="26#泵故障" HeaderText="26#泵故障" />
<asp:BoundField DataField="27#泵故障" HeaderText="27#泵故障" />
<asp:BoundField DataField="28#泵故障" HeaderText="28#泵故障" />
<asp:BoundField DataField="29#泵故障" HeaderText="29#泵故障" />
<asp:BoundField DataField="30#泵故障" HeaderText="30#泵故障" />
<asp:BoundField DataField="31#泵故障" HeaderText="31#泵故障" />
<asp:BoundField DataField="32#泵故障" HeaderText="32#泵故障" />
<asp:BoundField DataField="变频故障" HeaderText="变频故障" />
<asp:BoundField DataField="门磁" HeaderText="门磁" />
</Columns>
这个是CS里的代码
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds5.Tables["baojing"].DefaultView[i];
string score = Convert.ToString(mydrv["[2#泵故障]"]); //我在这把它换成1#泵故障就好使,但是换成2#泵故障或者门磁就不好使
if (int.Parse(score) < 8)
{
//GridView1.Rows[i].Cells[1].BackColor = System.Drawing.Color.Red; //设置背景颜色
GridView1.Rows[i].Cells[2].Attributes.Add("style", "color:red"); //设置字体颜色
}
}
它提示这个错误输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 输入字符串的格式不正确。 -
我想做一个报警,当一个列的值超出一定范围的时候就让字改变颜色,可是我遇到了下列问题
他提示这个错误输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 输入字符串的格式不正确。
这个是我的gridview
<asp:GridView ID="GridView1" runat="server" Width="550px"
AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound"
CellPadding="4" ForeColor="#333333" GridLines="None">
<Columns>
<asp:BoundField DataField="日期" HeaderText="日期" />
<asp:BoundField DataField="1#泵故障" HeaderText="1#泵故障" />
<asp:BoundField DataField="2#泵故障" HeaderText="2#泵故障" />
<asp:BoundField DataField="3#泵故障" HeaderText="3#泵故障" />
<asp:BoundField DataField="4#泵故障" HeaderText="4#泵故障" />
<asp:BoundField DataField="5#泵故障" HeaderText="5#泵故障" />
<asp:BoundField DataField="6#泵故障" HeaderText="6#泵故障" />
<asp:BoundField DataField="7#泵故障" HeaderText="7#泵故障" />
<asp:BoundField DataField="8#泵故障" HeaderText="8#泵故障" />
<asp:BoundField DataField="9#泵故障" HeaderText="9#泵故障" />
<asp:BoundField DataField="10#泵故障" HeaderText="10#泵故障" />
<asp:BoundField DataField="11#泵故障" HeaderText="11#泵故障" />
<asp:BoundField DataField="12#泵故障" HeaderText="12#泵故障" />
<asp:BoundField DataField="13#泵故障" HeaderText="13#泵故障" />
<asp:BoundField DataField="14#泵故障" HeaderText="14#泵故障" />
<asp:BoundField DataField="15#泵故障" HeaderText="15#泵故障" />
<asp:BoundField DataField="16#泵故障" HeaderText="16#泵故障" />
<asp:BoundField DataField="17#泵故障" HeaderText="17#泵故障" />
<asp:BoundField DataField="18#泵故障" HeaderText="18#泵故障" />
<asp:BoundField DataField="19#泵故障" HeaderText="19#泵故障" />
<asp:BoundField DataField="20#泵故障" HeaderText="20#泵故障" />
<asp:BoundField DataField="21#泵故障" HeaderText="21#泵故障" />
<asp:BoundField DataField="22#泵故障" HeaderText="22#泵故障" />
<asp:BoundField DataField="23#泵故障" HeaderText="23#泵故障" />
<asp:BoundField DataField="24#泵故障" HeaderText="24#泵故障" />
<asp:BoundField DataField="25#泵故障" HeaderText="25#泵故障" />
<asp:BoundField DataField="26#泵故障" HeaderText="26#泵故障" />
<asp:BoundField DataField="27#泵故障" HeaderText="27#泵故障" />
<asp:BoundField DataField="28#泵故障" HeaderText="28#泵故障" />
<asp:BoundField DataField="29#泵故障" HeaderText="29#泵故障" />
<asp:BoundField DataField="30#泵故障" HeaderText="30#泵故障" />
<asp:BoundField DataField="31#泵故障" HeaderText="31#泵故障" />
<asp:BoundField DataField="32#泵故障" HeaderText="32#泵故障" />
<asp:BoundField DataField="变频故障" HeaderText="变频故障" />
<asp:BoundField DataField="门磁" HeaderText="门磁" />
</Columns>
这个是CS里的代码
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv = myds5.Tables["baojing"].DefaultView[i];
string score = Convert.ToString(mydrv["[2#泵故障]"]); //我在这把它换成1#泵故障然后再把Cells[1].就好使,但是换成2#泵故障或者门磁就不好使
if (int.Parse(score) < 8)
{
GridView1.Rows[i].Cells[2].Attributes.Add("style", "color:red"); //设置字体颜色
}
}
这是为什么呢?- 已合并 孟宪会Moderator 2009年4月22日 4:45 问题重复
-
Replace是替换字符串如 string s = "123abc".Replace("123", "") // s = abc
int.TryParse 将数字的字符串表示形式转换为它的等效整数。并返回一个值表示是否转换成功, 它比 Parse 或 Convert.ToInt32效率更高一些,
你本地装了 msdn 吗? 如果没装你装一个吧, 以后遇到问题可以先查一下 msdn , 如果你的问题已解决请标记已解答以便遇到相同问题的人能搜到这张贴子
知识改变命运,奋斗成就人生!