2013-04-23 201 views
0
protected void Page_Load(object sender, EventArgs e) 
    { 
     string query = "SELECT Posts.*, Import_Export.* FROM Import_Export INNER JOIN Posts ON Import_Export.CatID = Posts.CatID where [email protected] "; 
     if (Request.QueryString["CID"] != null) 
     { 
      query += " and [email protected]"; 
      SqlDataSource2.SelectCommand = query; 
      SqlDataSource2.SelectParameters["Parent"].DefaultValue = Request.QueryString["Type"].ToString(); 
      SqlDataSource2.SelectParameters["CatID"].DefaultValue = Request.QueryString["CID"].ToString(); 
     } 
     else 
     { 
      SqlDataSource2.SelectCommand = query; 
      SqlDataSource2.SelectParameters["Parent"].DefaultValue = Request.QueryString["Type"].ToString(); 
     } 
    } 


我写这篇文章的代码,当我运行下面错误的代码中出现了:
对象引用不设置到对象的实例。错误“对象引用未设置为对象的实例”。

为什么?

+0

哪里是你的SqlDataSource2 instatiated?它是否意味着是一个SqlDataAdapter? – Constanta 2013-04-23 11:35:13

+0

@Constanta:在我写我的代码的同一页。 – 2013-04-23 11:38:41

+0

好吧,你跳过那一点。它看起来像这样SqlDataAdapter SqlDataSource2 = new SqlDataAdapter(); – Constanta 2013-04-23 11:40:05

回答

2

要在这里总结一下就是它应该是什么样子

SqlDataSource2.SelectCommand.Parameters.Add("Parent", System.Data.SqlDbType.NVarChar); 
SqlDataSource2.SelectCommand.Parameters["Parent"].Value = Request.QueryString["Type"].ToString(); 

OR

SqlDataSource2.SelectCommand.Parameters.AddWithValue("Parent",Request.QueryString["Type"].ToString()); 
+1

我写了这段代码,它的工作原理如下:\t \t \t'SqlDataSource2.SelectParameters.Add(“Parent”,Request.QueryString [“Type”]。ToString());'' – 2013-04-23 12:40:54

0

试试这个

protected void Page_Load(object sender, EventArgs e) 
    { 
     string query = "SELECT Posts.*, Import_Export.* FROM Import_Export INNER JOIN Posts ON Import_Export.CatID = Posts.CatID where [email protected] "; 
     if (Request.QueryString != null) 
     { 
      Parameter par = new Parameter("@Parent", DbType.String, Request.QueryString["Type"].ToString()); 
      SqlDataSource2.SelectParameters.Add(par); 


      if (Request.QueryString["CID"] != null) 
      { 
       query += " and [email protected]"; 
       SqlDataSource2.SelectCommand = query; 
       Parameter par2 = new Parameter("@CatID", DbType.String, Request.QueryString["CID"].ToString()); 
       SqlDataSource2.SelectParameters.Add(par2); 
      } 
      else 
      { 
       SqlDataSource2.SelectCommand = query; 
      } 
     } 
    } 
相关问题