string strsql = "select top 1000 * from 供方进料不合格统计表 order by 序号 DESC;"+"select * from 类别;"+"select * from 中分类;"
                +"select * from 物料分类表";
            //SqlDataAdapter da;
            //DataSet ds;
            ds = new DataSet();
            da = new SqlDataAdapter(strsql,Form1.stra);
            SqlCommandBuilder thisbuilder = new SqlCommandBuilder(da);
            da.Fill(ds);
            ds.Tables[0].TableName = "供方进料不合格统计表";
            ds.Tables[1].TableName = "类别";
            ds.Tables[2].TableName = "中分类";
            ds.Tables[3].TableName = "物料分类表";
            dataGridView1.DataSource = ds.Tables["供方进料不合格统计表"];
            材料类别TextBox.DataSource = ds.Tables["类别"];以上代码到datagridview1都没有问题,datagridview1可以正常显示数据出来
但是到了材料类别TextBox 就有问题了,实际上 材料类别TextBox 是COMBOBOX控件,出来的结果却是一些 system.datarowview 列表,不知道问题在那里,

解决方案 »

  1.   

    材料类别TextBox.DataSource = ds.Tables["类别"]; 
    材料类别TextBox.DisplayerMember="要显示列名";
    材料类别TextBox.ValueMember="要显示列名";
      

  2.   

    在取出datatable后 用arraylist 就可以了
    dt为你的datatable名
                           ArrayList list = new ArrayList();
                        string str = "SELECT * FROM user_t";
                        OracleDataAdapter da = new OracleDataAdapter(str, oracleconn);
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        DataTable dt = ds.Tables[0];
                           foreach (DataRow dr in dt.Rows)
                        {
                            list.Add(dr[0].ToString().Trim());//这里的0是取数据表的第0列 ,可根据需要自行更改
                        }
    TextBox.DataSource = list
      

  3.   

    材料类别TextBox.DataSource = ds.Tables["类别"]; 
    材料类别TextBox.DisplayerMember="要显示列名"; 
    材料类别TextBox.ValueMember="要显示列名";
    如果不这样绑定 就默认把datatable对象绑定上去 然后调用ToString()方法而出现  system.datarowview