日期:2014-05-17  浏览次数:20457 次

关于gridview绑定数据问题,通过变量关联

我先介绍一下问题:我用两个gridview绑定数据,关联了两个表,点击其中一个gridview控件的选择按钮,将选中的行的内容展开,通过选中的行调用数据库中相关的数据,这个需要在另一个gridview中显示,变量值也传递了,可是其中另一个控件就是不显示数据。之前用行ID可以实现,现在用行里面的其中一个字段就出问题了

下面将代码贴出来:
  public void bind()    {
        string sqlstr = "select * from component";
        con = new SqlConnection(strCon);
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, con);
        DataSet myds = new DataSet();
        con.Open();
        myda.Fill(myds, "catalog");
        GridView1.DataSource = myds;
        GridView1.DataKeyNames = new string[] { "ProNum" };//主键
        GridView1.DataBind();
         GridView1.HeaderRow.Cells[1].Text = "序号";
         GridView1.HeaderRow.Cells[2].Text = "资源名";
         GridView1.HeaderRow.Cells[3].Text = "创建时间";
         GridView1.HeaderRow.Cells[4].Text = "附加信息";
        con.Close();
    }
 public void bind1(string str)    {
        string sqlstr = "SELECT ProNum,SubProNum,Name,path FROM subcomponent  where ProNum= '  " + str + " '  ";
        con = new SqlConnection(strCon);
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, con);
        DataSet myds = new DataSet();
        con.Open();
        myda.Fill(myds, "result");
        GridView2.DataSource = myds;
        GridView2.DataKeyNames = new string[] { "ID" };//主键
        GridView2.DataBind();
        GridView2.HeaderRow.Cells[1].Text = "序号";
        GridView2.HeaderRow.Cells[2].Text = "产品总类";
        GridView2.HeaderRow.Cells[3].Text = "产品编号";
        GridView2.HeaderRow.Cells[4].Text = "产品名称";
     
 con.Close();

上面代码是两个控件绑定数据代码,bind1通过变量str传递过来的值就行数据库查找。如果直接运行,就出现绿色代码的问题,问题是“未将对象引用设置到对象的实例”,我修改了下标,还是会出现这个问题;如果我把绿色代码删除,不会出现这个问题,但是gridview控件不显示,标题和数据都不显示。单步调试可以看到ProNum值有变化,而且传给str了,这是怎么个问题,请大侠给点建议。