{"未将对象引用设置到对象的实例。"}?

afjafjafj2008 2008-11-30 02:16:32
想点击gridview1中的newstitle时跳到newscontents.aspx中显示新闻信息

newscontents.aspx.cs
public partial class newscontents : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection objconn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["sql_connstr"].ToString());
objconn.Open();

SqlCommand objcmd = new SqlCommand("NewsDetail",objconn);
objcmd.CommandType = CommandType.StoredProcedure;

SqlParameter paramNewsID = new SqlParameter("@NewsID",SqlDbType.Int,4);
paramNewsID.Value = Convert.ToInt32(Request.QueryString["NewsID"].ToString());出错
objcmd.Parameters.Add(paramNewsID);
提示:试图在代码中引用不存在的对象时,会发生 NullReferenceException。例如,您可能试图在未先使用 New 关键字的情况下使用对象,或试图使用值设置为 null(在 Visual Basic 中为 Nothing)的对象。
SqlDataReader dr = objcmd.ExecuteReader();
if (dr.Read())
{
tbxtitle.Text = dr["NewsTitle"].ToString();
tbxcontents.Text = dr["NewsContents"].ToString();
tbxpublisher.Text = dr["NewsPublisher"].ToString();
tbxdatetime.Text=dr["NewsDatetime"].ToString();
}
else
{
Response.Write("Sorry,没有该新闻信息!");
Response.End();
}
}

news.aspx
<asp:gridview>
.....
Columns>
<asp:BoundField DataField="NewsID" HeaderText="新闻编号" ReadOnly="True" SortExpression="NewsID" />
<asp:HyperLinkField DataNavigateUrlFields="NewsID" Target="_blank" DataNavigateUrlFormatString="newscontents.aspx?NewsID={0}}"
HeaderText="新闻标题" DataTextField="NewsTitle" />
<asp:BoundField DataField="NewsPublisher" HeaderText="新闻作者" ReadOnly="True" SortExpression="NewsPublisher"/>
<asp:BoundField DataField="NewsDatetime" HeaderText="发布时间" HtmlEncode="false" ReadOnly="True" SortExpression="NewsDatetime" DataFormatString="{0:yyyy-MM-dd hh:mm:ss}"/>
</Columns>
.....
</gridview>
数据库中有newsid的值呀,怎么是空呢?如我说的不清楚可以再补充
请大家帮个忙哈,先谢谢了!!!!!!!
...全文
243 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿彪兄 2008-11-30
  • 打赏
  • 举报
回复
if(Request.QueryString["NewsID"].ToString()!=null && Request.QueryString["NewsID"].ToString()!="")
paramNewsID.Value = Convert.ToInt32(Request.QueryString["NewsID"].ToString());
int.parse
mengxj85 2008-11-30
  • 打赏
  • 举报
回复
Request.QueryString["NewsID"].ToString());读不到值啊,或者值不是数字型
lizhimin0310 2008-11-30
  • 打赏
  • 举报
回复
d
afjafjafj2008 2008-11-30
  • 打赏
  • 举报
回复
是数值没有传过来呀,但数据库里有记录的。
不知道为什么没有传过来!还须大家看看呀,谢谢了!!!!
xuexiziji 2008-11-30
  • 打赏
  • 举报
回复
自己学着调试一下就明白了。数值没传过来。
jiang_jiajia10 2008-11-30
  • 打赏
  • 举报
回复
还有就是你看看你点标题的时候页面上有没有值传过去呢
jiang_jiajia10 2008-11-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yfqvip 的回复:]
1.确定已经读出数据
2.确定url里有NewsID值.
3.异常捕获,修改为兼容性较强的代码,例如:
paramNewsID.Value = Convert.ToInt32(Request.QueryString["NewsID"]==null?"-1":Request.QueryString["NewsID"].ToString());
[/Quote]
UP
DavidNoWay 2008-11-30
  • 打赏
  • 举报
回复
mark
满衣兄 2008-11-30
  • 打赏
  • 举报
回复
1.确定已经读出数据
2.确定url里有NewsID值.
3.异常捕获,修改为兼容性较强的代码,例如:
paramNewsID.Value = Convert.ToInt32(Request.QueryString["NewsID"]==null?"-1":Request.QueryString["NewsID"].ToString());
CODE163 2008-11-30
  • 打赏
  • 举报
回复

if(Request.QueryString["NewsID"].ToString()!=null)
paramNewsID.Value = Convert.ToInt32(Request.QueryString["NewsID"].ToString());

猜测

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧