写了一个小例子,找来找去都找不到错误
htlm:   
  <%@   Page   language= "c# "   Codebehind= "test.aspx.cs "   AutoEventWireup= "false "   Inherits= "test.WebForm1 "   %>      
 .CS   
 protected   System.Web.UI.WebControls.DataGrid   dg; 
 		private   readonly   string   dsn   =   ConfigurationSettings.AppSettings[ "dsn "].ToString();  		  	 
 		private   void   Page_Load(object   sender,   System.EventArgs   e) 
 		{ 
 			//   在此处放置用户代码以初始化页面 
 			SqlConnection   conn   =   new   SqlConnection(dsn); 
 			SqlDataAdapter   da   =   new   SqlDataAdapter( "select   *   from   zhuce ",conn); 
 			DataSet   ds   =   new   DataSet(); 
 			da.Fill(ds);   
 			dg.DataSource   =   ds; 
 			dg.DataBind(); 
 		}   
 web.config:   
  <appSettings>  
              <add   key= "dsn "   value= "data   source=xp\abc;database=abc;uid=sa;pwd=sa ">  </add>  
        </appSettings>      
 运行后提示错误:(但我实在看不出哪里有错误,我的代码应该没有问题啊!!!!!)    
未将对象引用设置到对象的实例。    
 说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。      
 异常详细信息:   System.NullReferenceException:   未将对象引用设置到对象的实例。   
 源错误:        
 行   30:   			SqlDataAdapter   da   =   new   SqlDataAdapter( "select   *   from   zhuce ",conn); 
 行   31:   			DataSet   ds   =   new   DataSet(); 
 行   32:   			da.Fill(ds); 
 行   33:    
 行   34:   			dg.DataSource   =   ds;        
------解决方案--------------------htlm:   
  <%@ Page language= "c# " Codebehind= "test.aspx.cs " AutoEventWireup= "false " Inherits= "test.WebForm1 " %>    
  <form id=form1 method=post runat=server>  
  <datagrid runat=server id=dg>  
  </form>