有一个treeview1控件和gridview1控件,当点击treeview1中某一节点时,将access数据表中“城市”这一列中值为该节点值的数据绑定到gridview1控件中,例如点击南京,则前两条数据显示到gridview1控件中,请教要怎么实现啊?
treeview1节点大致如下:
江苏省
---南京
---苏州
---无锡
浙江省
---杭州
---宁波
---绍兴
数据表大致如下:
序号 货物编号 城市 所在省份
1 1001 南京 江苏省
2 1002 南京 江苏省
3 2003 宁波 浙江省还想请教下,gridview控件绑定AccessDataSource,想解除数据绑定,写代码怎么实现;
还有绑定数据库总提示“至少一个参数没有被指定值”是什么意思啊?谢谢各位啦!
treeview1节点大致如下:
江苏省
---南京
---苏州
---无锡
浙江省
---杭州
---宁波
---绍兴
数据表大致如下:
序号 货物编号 城市 所在省份
1 1001 南京 江苏省
2 1002 南京 江苏省
3 2003 宁波 浙江省还想请教下,gridview控件绑定AccessDataSource,想解除数据绑定,写代码怎么实现;
还有绑定数据库总提示“至少一个参数没有被指定值”是什么意思啊?谢谢各位啦!
获取TreeVeiew所选节点数据,
string bmmc = this.bmTV.SelectedNode.Text; //bmTV就是TreeVeiew,bmGV是GridView
string spsxbh = this.bmTV.SelectedNode.Value;
bmGV.DataSource = new GVDataource().GetDataSource(bmmc, spsxbh);//后台重新绑定数据源
//new GVDataource()是实例化的一个自定义类
//new GVDataource().GetDataSource(bmmc, spsxbh);//得到的是一个DataTable
一个TreeViewNode存储信息的地方有三个,分别是Node.Text,Node.Name,Node.Tag
其中Text就是存储一个简单的文本,也就是结点在树中显示出来的文本,不要求唯一
Name相当于你的节点的标识符,唯一的,可以用来定位节点,比如TreeView1.Nodes["name1"],
Tag可以赋值为一个Object类型,就是可以往一个节点上挂任意一个对象
所以你可以获取这三个属性中任意一个的值,最简单的就是text,
然后根据text在数据库里面查对应的记录第二个问题:我一般是DataGridView.DataSource=xxx,或者DataGridView.DataSource=null
你是手动绑定的怎么解不清楚最后个问题:贴代码来看看,这个提示看起来应该是调用某个函数的时候传参不完全,或者传参过去是nullz值
protected void TreeView1_afterselect(object sender, EventArgs e)
{
OleDbConnectionStringBuilder csb = new OleDbConnectionStringBuilder();
csb.DataSource = @"\city.mdb";
csb.Provider = "microsoft.jet.oledb.4.0";
using (OleDbConnection odcn = new OleDbConnection(csb.ConnectionString))
{
DataSet ds = new DataSet();
string TreeViewId = this.TreeView1.SelectedNode.ToString();
OleDbCommand cmd = new OleDbCommand("select * from xzmsg where 城市=" + TreeViewId + "", odcn);
odcn.Open();
using (OleDbDataReader obrd = cmd.ExecuteReader())
{
ds.Load(obrd , LoadOption.OverwriteChanges, new string[] { "xzmsg" });
}
GridView1.DataSource = ds;
GridView1.DataBind();
odcn.Close();
}
}
提示说“至少一个参数没有被指定值”,请指点啊
OleDbCommand cmd = new OleDbCommand("select * from xzmsg where 城市=" + TreeViewId + "", odcn);
odcn.Open();
你把这两个的执行顺序交换一下呢
继续请教!
/// 单击treeview某个节点事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
string Tnode = e.Node.Text; //获取节点文本
this.dataGridView1.DataSource = 查询结果
}
你已经解决了,还有什么问题呢?
搞不懂你还要指点啥?