表1
id name type  typevalue
1  aa 类型一 102 
2  bb 类型一 104 
3  cc 类型二 204 表2
id  type  typevalue   flag
1  类型一   102  0
2  类型一   104  1
3  类型二   204  0 现在需要用一个CheckBoxList来绑定上面的两个表的某些数据.其中CheckBoxList的Text是表1的name ,而默认是否被选取是根据表2的flag是否为1.请教各位高手帮忙...

解决方案 »

  1.   

    不难啊,先绑定好CHECKBOXLIST的数据,TEXT为表1的NAME,VALUE为表1的ID
    然后从表2中找出FLAG为1的记录,取出其TYPEVALUE与表1的对比,找出正确的那条记录的ID,再与已经绑定的CHECKBOXLIST对比.ID相同的那么默认选中
      

  2.   

    楼上的方法未免太累了,比较简便的是,做查询的时候,把表一和表二关联起来,即得到id、name等的同时,也得到flag,然后再做绑定。
      

  3.   

    DataSet ds=data.GetDataSet("Select id from 表二 where flag=1")
    for(int i=0;Check1.Items.Count;i++)
    {
       for(int j=0;j<ds.Tables[0].Rows.Count;j++)
       {
        if(Check1.SelectedItem.Value==ds.Tables[0].Rows[i]["id"].ToString())
           {
               Check1.Checked=true;
           }
        }
    }
      

  4.   

    sql语句:select 表1.name,表2.flag from 表1,表2 where 表1.type = 表2.typeListItem newListItem;
    for( int i = 0 ; i< dataTable1.Rows.Count ; i++)
    {
    newListItem = new ListItem();
    newListItem.Text = dataTable1.Rows[i][0].ToString();
    newListItem.Value  = dataTable1.Rows[i][1].ToString();
    checkboxList1.Items.Add( newListItem );
    }
      

  5.   

    sql:
    select 表1.*,表2.flag from 表1,表2 where 表1.id = 表2.id and 表1.type = 表2.type然后你绑定的时候,用flag来作判断。
      

  6.   

    还忘了选值了:
    for( int i = 0 ; i< dataTable1.Rows.Count ; i++)
    {
    newListItem = new ListItem();
    newListItem.Text = dataTable1.Rows[i][0].ToString();
    newListItem.Value  = dataTable1.Rows[i][1].ToString();
    checkboxList1.Items.Add( newListItem );
             if (Convert.ToBoolean(dataTable1.Rows[i][1])) newListItem.Selected = true;
    }
      

  7.   

    To bitsbird(一瓢 单身走我路):哈哈 应该是重新回到无聊的日子
      

  8.   

    写错了
    DataSet ds=data.GetDataSet("Select id from 表二 where flag=1")
    for(int i=0;Check1.Items.Count;i++)
    {
       for(int j=0;j<ds.Tables[0].Rows.Count;j++)
       {
        if(Check1.Items[i].Value==ds.Tables[0].Rows[i]["id"].ToString())
           {
               Check1.Selected=true;
           }
        }
    }
      

  9.   

    to bitsbird(一瓢 单身走我路):你怎么知道我长得漂亮 怪了
      

  10.   

    把flag捆绑到一起。开始的时候判断一下就可以了!
      

  11.   

    之前的数据库和表达可能有点问题..我再重新组织一下语言..
    表一
    id type District            NU
    5 类型一 0 105
    6 类型二 0 104
    7 类型三 0 103
    8 类型四 0 118 表二
    Tid Lid  Ttype     typevalue          NU
    204 19 District   5 105
    205 19 District   6 104
    206 18 District   7 103表三
    Lid Lname Lflag
    18 user 1
    19 admin 1
    现在需要用一个CheckBoxList来绑定上面的三个表的某些数据.
    其中CheckBoxList的Text是表一的type .
    而默认是否被选取是根据两个条件.
    (1)表二的typevalue是否有与表一的id值相同记录.
    (2)满足了第一个条件后,再判断表二的Lid 是否等于 表三Lid值.
      

  12.   

    DataSet ds1=data.GetDataSet("select 表一.id,表一.type From 表一,表二 Where 表一.id=表二.typevalue");DataSet ds2=data.GetDataSet("Select Lid From 表三 where Lid in (select  表二.Lid From 表一,表二 Where 表一.id=表二.typevalue)");
      

  13.   

    哈哈,没想到看到了 一瓢也看到了夕夕。。上次见夕夕还是去年的。今天看了vclean的帖子,我说我csdn就pf两个人一个是karma一个是xixi