protected void Button2_Click(object sender, EventArgs e) 
    { 
         SqlConnection cn = database.creatdatabase(); 
        cn.Open(); 
        if (CheckBox2.Checked == true) 
        { 
            string aa = "select 商品编号,商品名,型号,品牌,剩余数量,出售量 from Product"; 
            SqlCommand cmd = new SqlCommand(aa, cn); 
            DataSet ds = new DataSet(); 
            string oo = cmd.ExecuteScalar().ToString(); 
            SqlDataAdapter sda = new SqlDataAdapter(cmd); 
            sda.Fill(ds, "product"); 
            GridView2.DataSource = ds.Tables["product"].DefaultView; 
            GridView2.DataBind(); 
        } 
        else if (TextBox2.Text.ToString().Trim() == "") 
        { 
            Response.Write("<script>alert('请输入值');</script>"); 
        } 
        else 
        { 
            string ii = "select 商品编号,商品名,型号,品牌,剩余数量,出售量 from Product where '" + DropDownList2.SelectedItem .Value .Trim () + "'='" + TextBox2.Text.ToString().Trim() + "'"; 
            SqlCommand cmd1 = new SqlCommand(ii, cn); 
            DataSet dd = new DataSet(); 
            string kk = cmd1.ExecuteScalar().ToString(); 
            SqlDataAdapter sd = new SqlDataAdapter(cmd1); 
            sd.Fill(dd, "all"); 
            GridView2.DataSource = dd.Tables["all"].DefaultView; 
            GridView2.DataBind(); 
        } 
         
    } 
运行了出现这个错误: 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 源错误:  
行 42:             SqlCommand cmd1 = new SqlCommand(ii, cn); 
行 43:             DataSet dd = new DataSet(); 
行 44:             string kk = cmd1.ExecuteScalar().ToString(); 
行 45:             SqlDataAdapter sd = new SqlDataAdapter(cmd1); 
行 46:             sd.Fill(dd, "all"); 
  
请高手看一下什么原因 

解决方案 »

  1.   

     string aa = "select 商品编号,商品名,型号,品牌,剩余数量,出售量 from Product"; 
     这错了把.
    string aa ="select id as 商品编号..... from Product":
      

  2.   

    用SqlDataAdapter,可以不用SqlCommand了,把42行,44行去掉,
    45行改成   SqlDataAdapter sd = new SqlDataAdapter(ii,cn)试一下 
      

  3.   

    自己参考作改吧
    private static DataSet SelectRows(DataSet dataset,
        string connectionString,string queryString) 
    {
        using (SqlConnection connection = 
            new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(
                queryString, connection);
            adapter.Fill(dataset);
            return dataset;
        }
    }