| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1424 人关注过本帖
标题:[求助]listbox问题
取消只看楼主 加入收藏
jflin
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-5-17
收藏
 问题点数:0 回复次数:4 
[求助]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
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
jflin
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-5-17
收藏
得分:0 
http://localhost/wangluo/EditNews.aspx?&NewsID=%e4%b8%ad
设了断点之后打开的网址如上,我不知道怎么改我的程序啊,请帮我指出在哪里出问题好吗?是不是listbox页面没有传NewsID过来啊?
2007-03-28 13:42
jflin
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-5-17
收藏
得分:0 

to all:listbox的value我希望它显示的是新闻的标题,NewsID不用显示出来,我的意思就是选中了新闻标题就能跳转到编辑页面,而在编辑页面根据选中的新闻标题提出NewsID,并在编辑页面显示新闻标题跟内容,我两个页面的程序都贴在这里啦,但我不知道应该怎么改,请帮我看下改出来好吗?谢谢了

2007-03-28 15:00
jflin
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-5-17
收藏
得分:0 
to Kendy123456,如你说选中新闻标题后 想办法先得到它对应的newsid,请问这步应该怎么实现??


if(NewsList.SelectedIndex > -1)
{ ///跳转到新闻修改页面,同时携带参数新闻ID
Response.Redirect("~/EditNews.aspx?&NewsID=" + NewsList.SelectedValue);
}

我选中了标题之后怎么知道我选中了哪个NewsID?是不是在上面加代码进去啊?应该怎么加?谢谢
2007-03-28 16:51
快速回复:[求助]listbox问题
数据加载中...
 
   



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

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