c# TreeView选中节点时在DataGridView控件中显示数据库中的数据

DataGridView控件中可以显示那个数据表的数据了。就是不能选中时更改数据的类型。privatevoidTreeV_AfterSelect(objectsender... DataGridView控件中可以显示那个数据表的数据了。就是不能选中时更改数据的类型。

private void TreeV_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Tag.ToString() == "-1")//编译时这段会出错呢,说没有实例化
DataTable的实例.DefaultView.RowFilter = " ";
else
DtUser.DefaultView.RowFilter="类型编号=‘“+e.node.tag.tostring()+”’"//这里面是不是对的啊 感觉有问题。如果有解决的方法 麻烦说哈 各位大神。

}
这是第一个表

列名 数据类型 允许null

借书本数 ...

类型编号 ....

借书本数 ....
展开
 我来答
匿名用户
2015-01-10
展开全部

不知楼主你的问题解决没,不过你提的问题我是没看懂,真只能运行你的源码才知道怎么解决。你需要的效果是这样的吗?这样的话我还可以帮帮你。

更多追问追答
追问
效果差不多。不过没用复选框是直接点中节点名称就显示出来 也没有查找按钮。求助
追答
我知道你的 if (e.Node.Tag.ToString() == "-1")//编译时这段会出错呢,说没有实例化
为何而错了,1.你可能没设置TreeView的Tag属性,即:
myNodes[id].Tag = dr1["dept_name"].ToString();
2.你的第一个根节点是手动设置(即不是从数据库中对应获取的,而是

myNodes[0] = new TreeNode();
myNodes[0].Text = "学院部门";//添加根节点
myNodes[0].Name = "null";
myNodes[0].Tag = "学院部门";)
所以才会导致你以运行代码就会出现e.Node.Tag.ToString()为空而报没有实例化的错误,解决的办法就是在加载TreeView的代码里为其Tag属性赋值
至于这句话: DtUser.DefaultView.RowFilter="类型编号=‘“+e.node.tag.tostring()+”’"//这里面是不是对的啊。
它的逻辑是没错的
DtUser.DefaultView.Sort = "M_BigOrder asc"; //相当于Order By
DtUser.DefaultView.RowFilter = "M_Fid='0'"; //相当于Where
阳光的雷咩咩
2015-01-10 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7605万
展开全部
留联系远程看。
追问
q205964200q 可以来看看不   急!!!
追答
加了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式