我想实现datagridview动态绑定数据库中的表格。其中EDUBJ_USERS和EDUBJ_INDEX为两个表格。可是实现不了。请帮我改下    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public DataSet getDs(string strCon)
        {   
            OracleDataAdapter oledbda;
            string Connstring = "Data Source=oracle_192.168.3.234;Persist Security Info=True;User ID=edubj;Password=edubj; Unicode=True";
            OracleConnection Conn = new OracleConnection(Connstring);
            oledbda = new OracleDataAdapter(strCon, Conn);
            DataSet ds = new DataSet();
            oledbda.Fill(ds);
            return ds;
        }
        private void Form1_Load(object sender, EventArgs e)
        {       
        }        private void button1_Click(object sender, EventArgs e)
        {
            string DtName;
            if (comboBox1.Text == "用户数据")
                DtName = " EDUBJ_USERS";
            else
                DtName = "EDUBJ_INDEX";
            string Connstring = "Data Source=oracle_192.168.3.234;Persist Security Info=True;User ID=edubj;Password=edubj; Unicode=True";
            OracleConnection Conn = new OracleConnection(Connstring);
            Conn.Open();
            string sql;
            sql = String.Format("SELECT * FROM {0}", DtName);
            OracleDataAdapter dtAdapter = new OracleDataAdapter(sql, Conn);
            OracleCommandBuilder commandbuilder = new OracleCommandBuilder(dtAdapter);
            DataSet ds = getDs(sql);
            BindingSource bindingsource = new BindingSource();
            bindingsource.DataSource = ds.Tables[DtName];
            dataGridView1.DataSource = bindingsource;
        }
    }

解决方案 »

  1.   

    button1_Click中的这一段,除了给sql赋值的语句,其他都是废的:
    string Connstring = "Data Source=oracle_192.168.3.234;Persist Security Info=True;User ID=edubj;Password=edubj; Unicode=True"; 
                OracleConnection Conn = new OracleConnection(Connstring); 
                Conn.Open(); 
                string sql; 
                sql = String.Format("SELECT * FROM {0}", DtName); 
                OracleDataAdapter dtAdapter = new OracleDataAdapter(sql, Conn); 
                OracleCommandBuilder commandbuilder = new OracleCommandBuilder(dtAdapter); 
    后面的:
    bindingsource.DataSource = ds.Tables[DtName];
    由于你取数据时没有给tablename命名,所以是取不到数据的。
    按你这样写都绑定ds.Tables[0]就行了
      

  2.   

    我知道bindingsource.DataSource = ds.Tables[DtName];
    这样写有错误,我是想动态的绑定表格,那ds.tabels[]里面的表名应该怎么写,才能使动态绑定啊?