代码如下:
            DateTime selDate = (DateTime)DatePicker1.SelectedDate; 
            DataSet ds = new DataSet();
            //ds = bllcount.GetList(" CT_ISOK=1 and CT_ISMS=0");
            ds = bllcount.GetList(" CT_ISOK=1 and CT_ISMS=0", selDate);            if (ds.Tables.Count > 0)
            {
                Grid1.DataSource = ds.Tables[0];
                Grid1.DataBind();
            }
每次把数据集绑定到grid的时候就会出错。堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   ExtAspNet.WindowField.GetColumnValue(GridRow row) +1021
   ExtAspNet.GridRow.DataBindRow() +275
   ExtAspNet.Grid.DataBindRow(Int32 rowIndex, Object rowObj) +172
   ExtAspNet.Grid.DataBindToDataTable(DataTable dataTable) +131
   ExtAspNet.Grid.DataBind() +403
   WebFrameWork.webPage.TJpage.SSFY.BindGridData() in G:\供热收费\20120618\HRSF\WebFrameWork\webPage\TJpage\SSFY.aspx.cs:43
   WebFrameWork.webPage.TJpage.SSFY.Page_Load(Object sender, EventArgs e) in G:\供热收费\20120618\HRSF\WebFrameWork\webPage\TJpage\SSFY.aspx.cs:29
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
网上看到很多类似的情况,可是都不太一样,请高手指教~~~~(>_<)~~~~ 

解决方案 »

  1.   

    遇到这种问题基本上可以归结为:
    1:本质上的错误:
    object a;//a是Null对象
    protected void Page_Load(object sender, EventArgs e)
    {
        a.ToString();//调用一个Null对象的方法
    }
    2:通常性的错误:
    示例1:一个过滤某些字符的函数:
            public static string FilterValue(string value)
            {
                string[] filterChar = new string[] { "\'", ",", ">", "<", "=", ";", "\"", "--" };
                for (int i = 0; i < filterChar.Length; i++)
                {
                    value = value.Replace(filterChar[i], "");
                }
                return value.Trim(' ');
            }这个函数比如容易看的出:如果value传进来为Null的时候,就等于Null.Replace被调用,就出现了上面的错误。因此,通常的,在函数的首行,都会对value进行:if(!string.IsNullOrEmpty(value)) 一下。