当前位置: 代码迷 >> C# >> 多个DataGridView绑定多个表时出现异常
  详细解决方案

多个DataGridView绑定多个表时出现异常

热度:544   发布时间:2016-05-05 05:27:32.0
多个DataGridView绑定多个表时出现错误
本帖最后由 lansuk 于 2014-12-19 21:28:20 编辑
菜鸟学生求大神帮助
        static public DataSet ReturnDataSet(string sqlStr) 
        {
            try
            {
                DataSet ds = new DataSet();
                SqlConnection con = GetConn();
                SqlDataAdapter da = new SqlDataAdapter(sqlStr, con);
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw (ex);
            }

        DataSet ds2;
        if (Sno.Equals("1") && sex.Equals("male"))
                sql = "select * from InfoTable,KQTable,JCTable,GZTable,DETable where GZTable.Sno='111' and InfoTable.Sno=GZTable.Sno  and GZTable.Sno=JCTable.Sno and JCTable.Sno=KQTable.Sno and DETable.DENum=InfoTable.DENum";
         else
                sql = "select * from InfoTable,KQTable,JCTable,GZTable,DETable where GZTable.Sno='222' and InfoTable.Sno=GZTable.Sno  and GZTable.Sno=JCTable.Sno and JCTable.Sno=KQTable.Sno and DETable.DENum=InfoTable.DENum";
            ds2 = DBTool.ReturnDataSet(sql);
            dataGridViewY.DataSource = ds2.Tables[0].DefaultView;
            dataGridViewB.DataSource = ds2.Tables[1].DefaultView;
            dataGridViewK.DataSource = ds2.Tables[2].DefaultView;
            dataGridViewJ.DataSource = ds2.Tables[3].DefaultView;
            dataGridViewG.DataSource = ds2.Tables[4].DefaultView;

谢谢!!

------解决思路----------------------
你的数据源只有一个表
------解决思路----------------------
因为你这句话ds2 = DBTool.ReturnDataSet(sql);返回的DataSet里面只有一个表,即ds2.Tables[0]。
------解决思路----------------------
  ds2 = DBTool.ReturnDataSet(sql); 这个ds2的dataSet里面只有 一个sql语句执行出来的 datatable数据  相当于一个数组里面只有一个  索引为0  当你取索引为1 的数组数据时  当然报错了
------解决思路----------------------
你查询10张表,返回的集合如果只是一个集合,那就是一个Datatable,所以你只有DataTable[0].

你可以把你的Sql放到数据库中去执行一下,如果你查询出来的结果只显示在一张表里面,那就只有一个datatable。

你这里要多次查询并把结果放到相应的datatable里面才行,或者你要重新定义几个Datable 并把你查询出来的这个Datable进行拆分。然后再给datageidview 绑定
------解决思路----------------------
看你sql里面返回的只有一张表呀
  相关解决方案