string connectionString = ConfigurationManager.AppSettings["aaa"];
        SqlConnection myConnection = new SqlConnection(connectionString);
        SqlCommand myCommand = new SqlCommand(mysql, myConnection);
        SqlDataAdapter myAdapter = new SqlDataAdapter();
        myAdapter.SelectCommand = myCommand;
        DataSet myDataSet = new DataSet();
        myAdapter.Fill(myDataSet);
 
       
        mydatagrid.DataSource = myDataSet;
        mydatagrid.DataBind();
以上代码执行正常。
但是在空白处加上
mylabel.Text = myDataSet.Tables["tablename"].Rows[0]["fieldname"].ToString();
//mylabel是页面中的一个asp:label控件就会出错:
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。网上看到出现同样问题的都是sqldatareader,dataset应该不会有这种问题呀,而且看到的例程都是这样写的

解决方案 »

  1.   

    mylabel.Text = myDataSet.Tables["tablename"].Rows[0]["fieldname"].ToString()你确定dataset表名是tablename,第一行的字段名是fieldname吗?
      

  2.   

    肯定没错,而且我如果换用
    mydatagrid.DataSource = myDataSet;
    mydatagrid.DataBind();mylabel.Text = DataBinder.Eval(mydatagrid.DataItem, "fieldname", "{0:c}");就可以通过。
      

  3.   

    mylabel.Text = myDataSet.Tables["tablename"].Rows[0]["fieldname"].ToString()那你确定表名是tablename了吗?
    改用mylabel.Text = myDataSet.Tables[0].Rows[0]["fieldname"].ToString()试试。
      

  4.   

    我想是不是只有一张表的时候表名就不传给dataset哦。