大家好!请教如下问题:
表结构如下:  表名;Kaizhi
ID     字段     Field Name
1     开支ID      kzID
2     开支人       Kzren
3   开支项目名     kzname
---
我在Form1的TreeView下读取了“ 字段 ”,我在实现如下的功能时出现了问题:即
当我点击TreeView下的“开支ID”时,能够在Form2中显示如下信息:
ID     字段     Field Name
1     开支ID      kzID
当我点击TreeView下的“开支人”时,能够在Form2中显示如下信息:
ID     字段     Field Name
2     开支人       Kzren
如何实现啊?我实在是搞不定!请高手多多指点啊!最好能提供一些可以参考的源码.

解决方案 »

  1.   

    你可以在form2里边根据点击获得的“开支ID”再load一下表嘛
      

  2.   


    把要显示的数据,传给Form2显示就可以了啊最简单的就是Form2里面放6个Label,上面三个是固定内容ID    字段    Field Name 
    下面三个需要动态改变。把下面三个的Modifier属性设置为public然后在Form1里面Form2 frm = new Form2();
    frm.label4.Text = 选中节点第0列值
    frm.label5.Text = 选中节点第1列值
    frm.label6.Text = 选中节点第3列值
    frm.ShowDialog(this);
      

  3.   

    To:cpio!多谢!我想实现是的它们以一张表格的显示出来。
    To:devilli!谢谢你的建议!能否再说的具体点啊!
    我的代码是在Form1的
    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
             “事件”
    }
    在Form2中以  与原来数据库   一样的表格   显示出来。
    只是让它显示出来的是    被选如( 开支ID)   的那一行信息。
      

  4.   

    给你参考下:
    Form1using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private string id = "";        public string Id
            {
                get { return id; }
                set { id = value; }
            }
            private string 字段 = "";        public string 字段1
            {
                get { return 字段; }
                set { 字段 = value; }
            }
            private string filedName = "";        public string FiledName
            {
                get { return filedName; }
                set { filedName = value; }
            }        private void button1_Click(object sender, EventArgs e)
            {
                string connstr = "user id=manager;password=foton;data source=ecudb";
                using (System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection(connstr))
                {
                    DataSet ds = new DataSet();
                    string selectSql = "select id,字段,fieldname from kaizhi";
                    System.Data.OracleClient.OracleCommand cmd = new System.Data.OracleClient.OracleCommand(selectSql, conn);
                    System.Data.OracleClient.OracleDataAdapter da = new System.Data.OracleClient.OracleDataAdapter(cmd);
                    int rtnNum = 0;
                    rtnNum = da.Fill(ds, "table");
                    TreeNode root = new TreeNode();
                    root.Name = "根";
                    root.Text = "根节点";
                    if (!this.treeView1.Nodes.ContainsKey(root.Name))
                    {
                        this.treeView1.Nodes.Add(root);
                    }
                    for (int i = 0; i < rtnNum; i++)
                    {
                        TreeNode treeNode = new TreeNode();
                        treeNode.Name = ds.Tables["table"].Rows[i]["id"].ToString();
                        treeNode.Text = ds.Tables["table"].Rows[i]["字段"].ToString();
                        treeNode.Tag = (object)ds.Tables["table"].Rows[i]["fieldname"].ToString();
                        root.Nodes.Add(treeNode);
                    }
                    treeView1.ExpandAll();
                }        }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                this.Id = treeView1.SelectedNode.Name;
                this.字段1 = treeView1.SelectedNode.Text;
                this.FiledName = treeView1.SelectedNode.Tag.ToString();
                Form2 frm2 = new Form2();
                frm2.Id = this.Id;
                frm2.字段1 = this.字段1;
                frm2.FieldName=this.FiledName;
                frm2.Show();
            }
        }
    }Form2
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            private string id = "";        public string Id
            {
                get { return id; }
                set { id = value; }
            }
            private string 字段 = "";        public string 字段1
            {
                get { return 字段; }
                set { 字段 = value; }
            }
            private string fieldName = "";        public string FieldName
            {
                get { return fieldName; }
                set { fieldName = value; }
            }        private void Form2_Load(object sender, EventArgs e)
            {
                this.textBox1.Text = this.Id;
                this.textBox2.Text = this.字段1;
                this.textBox3.Text=this.FieldName;
            }
        }
    }
      

  5.   


     private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                this.Id = treeView1.SelectedNode.Name;
                this.字段1 = treeView1.SelectedNode.Text;
                this.FiledName = treeView1.SelectedNode.Tag.ToString();
                Form2 frm2 = new Form2();
                frm2.Id = this.Id;
                frm2.字段1 = this.字段1;
                frm2.FieldName=this.FiledName;
                frm2.Show();
            }
    同意楼上这个方法,不过好像每点一次就会弹出一个窗口,这样不是楼主要的
    应该在 去掉这个 
    Form2 frm2 = new Form2();
    frm2.Show();
    让这个frm2在form1一加载的时候就加载进来
      

  6.   

    是这样的,这只是提供一个参考,具体的还要根据楼主自己的需求改下,比如拿什么来接收Id,字段1,FileName等。
    要只要一个Form2的话,就如你所说的在Form1窗体load的时候new一个Form2.
      

  7.   

    请教如何读取access数据库某一行的数据啊?