关于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了,这是怎么个问题,请大侠给点建议。 gridview c# 数据库
[解决办法]
绿色代码部分需要你在databind()方法之前执行
[解决办法]
GridView2.DataKeyNames = new string[] { "ID" };//主键
没看出你后来的Id在哪里
string sqlstr = "SELECT ProNum,SubProNum,Name,path FROM subcomponent where ProNum= ' " + str + " ' ";
[解决办法]
你看下
string sqlstr = "SELECT ProNum,SubProNum,Name,path FROM subcomponent where ProNum= ' " + str + " ' ";
的值
应该是没数据
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
[解决办法]
你查询语句中都没有,你后面还莫名其妙的把主键设成ID ,你不觉得这个有误吗?
[解决办法]
' er003'
是不是多了个空格?
ProNum= ' " + str + " '
ProNum= '" + str + " '