c#报错 Object reference not set to an instance of an object.

stringstrCateGory="CateGoryID=1";stringstrPrice="UnitPrice>0";privatevoidFillDropDown... string strCateGory = "CateGoryID=1";
string strPrice = "UnitPrice>0";
private void FillDropDownList()
{
SqlConnection Conn = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=SSPI;Initial Catalog=Northwind");
string strSqlCategories = "select CategoryName,CategoryID from Categories";
SqlCommand cmd = new SqlCommand(strSqlCategories,Conn);
Conn.Open();
ddlCategoryFilter.DataSource = cmd.ExecuteReader();
ddlCategoryFilter.DataTextField = "CategoryName";
ddlCategoryFilter.DataValueField= "CategoryID";
ddlCategoryFilter.DataBind();
Conn.Close();
}
private void FilterByPrice(string strChoice)
{
switch (strChoice)
{
case "Any Price":
strPrice = "UnitPrice>0";
break;
case "Cheap":
strPrice = "UnitPrice<20";
break;
case "Moderate":
strPrice = "UnitPrice>=20 AND UnitPrice<50";
break;
case "Expensive":
strPrice = "UnitPrice>=50";
break;
case "Absurdly Expensive":
strPrice="UnitPrice>100";
break;
}
}
private void FilterByCategory(string strChoice)
{
strCateGory="CategoryID="+strChoice;
}
private void DataFiller()
{
SqlConnection Conn = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=SSPI;Initial Catalog=Northwind");
string strSql = "select ProductID,ProductName,CategoryID,UnitPrice from Products";
SqlDataAdapter Adapter = new SqlDataAdapter(strSql,Conn);
Conn.Open();
DataSet ds = new DataSet();
Adapter.Fill(ds,"dtProducts");
DataView dvUK = new DataView(ds.Tables["dtProducts"]);
dvUK.RowFilter = strCateGory + "AND(" + strPrice + ")";
dgProducts.DataSource = dvUK;
dgProducts.DataBind();
Conn.Close();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
FillDropDownList();
DataFiller();
}
}

protected void FilterChange(object sender, EventArgs e)
{
FilterByCategory(ddlCategoryFilter.SelectedItem.Value.ToString());
FilterByPrice(rdbtPrice.SelectedItem.Text.ToString());
DataFiller();
}
}
Source Error:

Line 78: {
Line 79: FilterByCategory(ddlCategoryFilter.SelectedItem.Value.ToString());
Line 80: FilterByPrice(rdbtPrice.SelectedItem.Text.ToString());
Line 81: DataFiller();
Line 82: }

Source File: Line: 80
Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
_3._22.WebForm8_61.FilterChange(Object sender, EventArgs e) in D:\2010\3.22\3.22\WebForm8_61.aspx.cs:80
System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e) +118
System.Web.UI.WebControls.DropDownList.RaisePostDataChangedEvent() +143
System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +10
System.Web.UI.Page.RaiseChangedEvents() +134
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5201
有内容的,断点设在哪里
展开
 我来答
你是谁LCqTt
2011-01-20 · TA获得超过602个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:852万
展开全部
rdbtPrice.SelectedItem有内容吗?

就设在你出错的那一行。

FilterByPrice(rdbtPrice.SelectedItem.Text.ToString());
看看 rdbtPrice.SelectedItem是不是null的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0dcf05474
2011-01-21 · 超过17用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:57万
展开全部
FilterByPrice(rdbtPrice.SelectedItem.Text.ToString());
这个代码你看你的 rdbtPrice.SelectedItem.Text 这个值获取到了吗
如果是空值,肯定是不能tostring()的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b9f6e14
2011-01-20 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:181万
展开全部
难道你的下拉控件没有 绑上值?

设断点一步步看 ,学会用断点,按F10 跟着走
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmqnli
2011-01-21 · TA获得超过1347个赞
知道小有建树答主
回答量:1328
采纳率:50%
帮助的人:985万
展开全部
在那里引用对象的时候没有实例化,或者使用了null变量。只能单步跟踪了,看看问题在那里!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式