可以用SPLIT将DS里的值转化为数组形式,然后做一个循坏,将数组里的数加到一个TABLE里,再用DATAGRID绑定之。

解决方案 »

  1.   

    数组好像不能直接被datagrid绑定的,我建议两种方法,一种是把数组中的内容存到另一个表里面,然后再绑定,要不然就是写循环将数组中的数据插入到datagrid中。产生数组,你可以把user表中的friend值存到string类型的变量里面(str),然后用user[]=str.split(',')就可以得到数组,然后方法一:在数据库里新建一个table,然后将数组中的内容insert到table中,然后用dategrid绑定此table;方法二:在datagrid中,利用循环如:
    for(int i=0;i<user.length;i++)
    {
        datagrid.Items[i].Cells[0].Text=user[i];
    }就可以了产生一个datagrid有user.length行,一列。
      

  2.   

    首先告诉你,数组可以绑定到DataGrid控件上,但是只能在DataGrid上显示数组每个
    元素的长度,所以,你最好是直接绑定一个DataSet或者一个DataTable
    DataSet不支持直接转化成数组,但是可以通过变通方法,代码如下:string[] user=new string[ds.Tables["User"].Rows.Count];
    for(int r=0;r<ds.Tables["User"].Rows.Count;r++)
    {
       user[r]=ds.Tables["User"].Rows[r]["Friend"].ToString();
    }
      

  3.   

    如果你执意要把数组绑定在DataGrid上,不妨试一试,你就会看到有趣的现象
    dataGrid1.DataSource=user;
      

  4.   

    declare @xx varchar(1024)select @xx = friend from user where id = 传入的值declare @name varchar(1024)
    set @name = ''
    select @name = @name + your_name + '*' from yourTable where 
    charindex(cast(id as varchar(12)),@xx) > 0select @name
      

  5.   

    补充:如果想一行显示多列就用方法二,改一下循环即可
    for(int i=0;i<user.length;i++)
    {
        if(i == user.length-1)
        {
            datagrid.Items[您想插入的行索引].Cells[i].Text = user[i];
        }
        else
        {
            datagrid.Items[您想插入的行索引].Cells[i].Text = user[i] + "<br>";
        }
    }