一个题目:在asp.net中从HTTP页面输入一组数字经冒泡排序后显示到页面。本人刚接触.net,对输入输出不是太清楚。代码如下;但是编译后会出现异常,不晓得怎么解决,请高手指点,修改以下代码。
代码:
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.TextBox TextBox4;
protected System.Web.UI.WebControls.TextBox TextBox5;
protected System.Web.UI.WebControls.TextBox TextBox6;
protected System.Web.UI.WebControls.TextBox TextBox7;
protected System.Web.UI.WebControls.TextBox TextBox8;
protected System.Web.UI.WebControls.TextBox TextBox9;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox TextBox10;
private void Page_Load(object sender, System.EventArgs e)
{
int[] a=new int[10];
string[] text=new string[]{"TextBox1.Text","TextBox2.Text","TextBox3.Text","TextBox4.Text","TextBox5.Text","TextBox6.Text","TextBox7.Text","TextBox8.Text","TextBox9.Text","TextBox10.Text"};
for(int i=0;i<10;i++)//从页面中读取10个数
{
a[i]=Convert.ToInt32(text[i]);//.net显示这里出错了
}
int temp;//临时变量
bool exchange;
for(int j=0;j<9;j++)
{
exchange = false;
for(int i=0;i<9-j;i++)//循环检查数组中相邻元素的大小
{
if(a[i]>a[i+1])
{
temp=a[i];//交换元素
a[i]=a[i+1];
a[i+1]=temp;
exchange = true;
}
}
if(!exchange)
{
break;
}
}
Response.Write("排序后的结果是:");
for(int i=0;i<10;i++)//显示排序后的结果
{
string b=a[i].ToString();
Response.Write("b,");
}
}
}
}
错误信息如下:
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 38: a[i]=Convert.ToInt32(text[i]); 源文件: c:\inetpub\wwwroot\myproject1\冒泡排序.aspx.cs 行: 38 堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
System.Convert.ToInt32(String value) +47
MyProject1.WebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\myproject1\冒泡排序.aspx.cs:38
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
代码:
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.TextBox TextBox4;
protected System.Web.UI.WebControls.TextBox TextBox5;
protected System.Web.UI.WebControls.TextBox TextBox6;
protected System.Web.UI.WebControls.TextBox TextBox7;
protected System.Web.UI.WebControls.TextBox TextBox8;
protected System.Web.UI.WebControls.TextBox TextBox9;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox TextBox10;
private void Page_Load(object sender, System.EventArgs e)
{
int[] a=new int[10];
string[] text=new string[]{"TextBox1.Text","TextBox2.Text","TextBox3.Text","TextBox4.Text","TextBox5.Text","TextBox6.Text","TextBox7.Text","TextBox8.Text","TextBox9.Text","TextBox10.Text"};
for(int i=0;i<10;i++)//从页面中读取10个数
{
a[i]=Convert.ToInt32(text[i]);//.net显示这里出错了
}
int temp;//临时变量
bool exchange;
for(int j=0;j<9;j++)
{
exchange = false;
for(int i=0;i<9-j;i++)//循环检查数组中相邻元素的大小
{
if(a[i]>a[i+1])
{
temp=a[i];//交换元素
a[i]=a[i+1];
a[i+1]=temp;
exchange = true;
}
}
if(!exchange)
{
break;
}
}
Response.Write("排序后的结果是:");
for(int i=0;i<10;i++)//显示排序后的结果
{
string b=a[i].ToString();
Response.Write("b,");
}
}
}
}
错误信息如下:
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 38: a[i]=Convert.ToInt32(text[i]); 源文件: c:\inetpub\wwwroot\myproject1\冒泡排序.aspx.cs 行: 38 堆栈跟踪:
[FormatException: 输入字符串的格式不正确。]
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
System.Convert.ToInt32(String value) +47
MyProject1.WebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\myproject1\冒泡排序.aspx.cs:38
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
解决方案 »
- 如何将有中文的string 转 双字节的char[]
- sql语句关于时间查询问题.
- vs2005帮助问题:安装了vs2005,msdn lib for 2005,帮助不正常,目录窗口无项目,点筛选依据中的项目,即出错退出,求解决方法。
- c# 子窗体关闭后 怎么把已经隐藏的父窗体显示出来
- 两个插入记录到XML的操作,请问怎么创建事务?
- 我也来说说VB.net 和C#
- 水晶报表--动态数据源--涉及两个表! 第一问题已解决,在CrystalReport中显示两个表,怎样处理呀?
- datatable数据插入到SQL, 急!!大家帮忙,解决马上给分
- 很急:在New一个类时,出现下面错误:检索 COM 类工厂中 CLSID 为 {2461FCCD-1D4E-11D1-A34D-00A024CDD5E5} 的组件时失败,原因是出现以
- vs2010 chart控件能显示对数坐标吗
- 初学C#,问个问题,请指教.
- 较难问题,熟练.net程序员请进
string[] text=new string[]{"TextBox1","TextBox2","TextBox3","TextBox4","TextBox5","TextBox6","TextBox7","TextBox8","TextBox9","TextBox10"};
for(int i=0;i<10;i++)//从页面中读取10个数
{
a[i]=Convert.ToInt32(((TextBox)Page.FindControl(text[i])).Text);//.net显示这里出错了
}
就是说你把"TextBox1.Text"字符串转化成整型是不可能的