| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1417 人关注过本帖
标题:[求助]listbox问题
只看楼主 加入收藏
jflin
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-5-17
收藏
 问题点数:0 回复次数:21 
[求助]listbox问题

我在选择了listbox的数据项之后,点编辑按钮去到编辑页面,这时出现了下面的错误:

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:

private void Page_Load(object sender, System.EventArgs e)
{
行 29: if(Request.Params["NewsID"] != null)
行 30: {
行 31: nNewsID = Int32.Parse(Request.Params["NewsID"].ToString());//红色字体显示
行 32: }

请问该怎么解决这个问题啊?谢谢

搜索更多相关主题的帖子: listbox 
2007-03-28 10:34
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
收藏
得分:0 
哦!你传来的参数 可能不单只有数字而已 才会出现这样的问题!这个 你可以看看  你传来的地址里 的东西是不是出问题了

决定人生~
2007-03-28 10:36
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
用 Request.QueryString[]  试试.

飘过~~
2007-03-28 11:15
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 

楼主用的是2005吗?你写的NewsID是什么呢?会不会得到的值是非数字的字符串啊,感觉就是在Int32.Parse的时候出了问题


本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-03-28 11:20
windstores
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-3-25
收藏
得分:0 
用Convert.ToInt32试下

哇咔咔.. 偶系菜鸟....
2007-03-28 11:22
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
楼上等于没说

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-03-28 11:25
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
我的意见和2楼4楼一样

转换前先判断一下 newsid这个参数的数据类型

2007-03-28 11:50
jflin
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-5-17
收藏
得分:0 

我把我的代码贴出来,大家帮我改下好吗?好像在显示数据时代码有误:
listbox页面的代码如下:

private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{ ///绑定新闻种类的数据
BindNewsData(nNewsID);
}
// 在此处放置用户代码以初始化页面
}
private void BindNewsData(int nNewsID)
{
///清空News列表中的原始数据
NewsList.Items.Clear();
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"];
con.Open();
string Provincesql = "SELECT * FROM News";
SqlDataAdapter adapter = new SqlDataAdapter(Provincesql, con);
DataSet ds = new DataSet();
adapter.Fill(ds, "Title");
//NewsList.DataSource=ds;
//NewsList.DataBind();
//显示数据中新闻的标题
for(int i=0;i<ds.Tables[0].Rows.Count;i++)

{
NewsList.Items.Add(ds.Tables[0].Rows[i]["Title"].ToString());
}

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.editbtn.Click += new System.EventHandler(this.editbtn_Click);
this.delbtn.Click += new System.EventHandler(this.delbtn_Click);
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion


private void Button1_Click(object sender, System.EventArgs e)
{
Response.Redirect("addnews.aspx");
}
private string FormatTitle(string sTitle)
{
if(sTitle.Length > 50)
{
return(sTitle.Substring(50) + "...");
}
else
{
return(sTitle);
}
}

private void editbtn_Click(object sender, System.EventArgs e)
{
if(NewsList.SelectedIndex > -1)
{ ///跳转到新闻修改页面,同时携带参数新闻ID
Response.Redirect("~/EditNews.aspx?&NewsID=" + NewsList.SelectedValue);
}
else
{
Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
}
}

private void delbtn_Click(object sender, System.EventArgs e)
{
}



编辑页面的代码如下:

private void Page_Load(object sender, System.EventArgs e)
{
if(Request.Params["NewsID"] != null)
{
nNewsID = Int32.Parse(Request.Params["NewsID"].ToString());
//nNewsID=Request.Params["NewsID"].ToString();
}
if(!Page.IsPostBack)
{
if(nNewsID > 0)
{
BindNewsData(nNewsID);
}
}
// 在此处放置用户代码以初始化页面
}
private void BindNewsData(int nNewsID)
{
if(nNewsID > 0) ///首先判断新闻ID是否大于0,否则不从数据库取数据
{ ///从数据库取到新闻ID为nNewsID的新闻的信息
//连接数据库
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"];
String cmdText = "SELECT * FROM News WHERE NewsID = '" + nNewsID.ToString() + "'";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
myConnection.Open();
SqlDataReader recn = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
///给新闻标题框和新闻内容框初始化数据
while(recn.Read())
{
NewsTitle.Text = recn["Title"].ToString();
NewsBody.Text = recn["Body"].ToString();
}
recn.Close();
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.editbtn.Click += new System.EventHandler(this.editbtn_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void editbtn_Click(object sender, System.EventArgs e)
{
if(NewsTitle.Text.Trim().Length > 0 && NewsBody.Text.Trim().Length > 0)
{ ///构建数据库连接和修改新闻的SQL语句
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"];
String cmdText = "UPDATE NEWS SET Title = '" + NewsTitle.Text + "',Body = '" + NewsBody.Text
+ "' WHERE NewsID = '" + nNewsID.ToString() + "'";
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
///打开数据库连接并执行修改操作
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
///返回新闻管理页面
Response.Redirect("NewsManage.aspx");
}
else
{
Response.Write("<script>alert(\"新闻的标题不能为空!\")</script>");
}

}


谢谢了

[此贴子已经被作者于2007-3-28 13:43:07编辑过]

2007-03-28 11:52
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
收藏
得分:0 
if(Request.Params["NewsID"] != null)
{
nNewsID = Int32.Parse(Request.Params["NewsID"].ToString());---这里设个段点看一下传过来的参数值是什么?如果包函字符串或者是空字符串Int32.Parse会转换出错...
//nNewsID=Request.Params["NewsID"].ToString();
}

Knowledge is infinite.
2007-03-28 13:11
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
以下是引用sean88在2007-3-28 13:11:49的发言:
if(Request.Params["NewsID"] != null)
{
nNewsID = Int32.Parse(Request.Params["NewsID"].ToString());---这里设个段点看一下传过来的参数值是什么?如果包函字符串或者是空字符串Int32.Parse会转换出错...
//nNewsID=Request.Params["NewsID"].ToString();
}

应该的,谁让你就听5楼的意见来着


本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-03-28 13:20
快速回复:[求助]listbox问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014258 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved