日期:2014-05-17  浏览次数:21007 次

C#读取数据库写文本ID相同行连接
读取的数据库结构如下(数据库中大概有7万条数据):
1  a1
1  a2
1  a3
2  b1
3  c1
3  c2
写入文本的格式如下:
1  a1  a2  a3
2  b1
3  c1  c2

请问牛牛们,我该怎么做

------解决方案--------------------
DataClasses1DataContext db = new DataClasses1DataContext();
foreach(int key in db.Attendances.Select(s => s.LocationId).Distinct()
{
   Console.Write(key);
   foreach(string text in db.Attendances.Where(s => s.LocationId == key).Select(s => s.Text))
   {
       Console.Write(text);
   }
}


用的是LinQ to SQL
------解决方案--------------------
这个最好是在数据库里面处理好一次性返回,如果数据库是sql2000那么要用函数处理.如果是sql2005以上,可以用pivot分析函数处理
------解决方案--------------------
sql 2000返回数据示例:

create table tb(id int ,context varchar(10))
insert into tb
select 1,'a1'
union all select 1,'a2'
union all select 1,'a3'
union all select 2,'b1'
union all select 3,'c1'
union all select 3,'c2'
go

create function dbo.fn_b(@id int)
returns varchar(1000)
as 
begin
declare @s varchar(1000)
set @s=''
select @s=@s+' '+context from tb where id=@id
return (@s)
end
go

select id,dbo.fn_b(id) as context
from tb
group by id


/*
id    context
---------------------------
1  a1 a2 a3
2  b1
3  c1 c2
*/

------解决方案--------------------
http://hi.baidu.com/cookiemulan/item/9a43507cb406bb3d70442329
------解决方案--------------------
  class Program
    {
        static void Main(string[] args)
        {

            List<Entity> list = new List<Entity>();
            list.Add(new Entity(1, "a1"));
            list.Add(new Entity(1, "a2"));
            list.Add(new En