LINQ 返回 datatable的问题

zz2582919627 2012-08-30 10:45:56
之前没有用过 LINQ 现在需要用linq实现 执行拼接的sql语句 然后返回datatable 和dataset 请大家可以给一个小示例 以便我自己可以扩展
...全文
397 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zz2582919627 2012-08-30
  • 打赏
  • 举报
回复
3Q 唯 大概我能明白啦[Quote=引用 9 楼 的回复:]
System.Data.Linq.DataContext ctx =new System.Data.Linq.DataContext ctx();
ctx.ToDataTable()
[/Quote]
杰拉尔 2012-08-30
  • 打赏
  • 举报
回复
System.Data.Linq.DataContext ctx =new System.Data.Linq.DataContext ctx();
ctx.ToDataTable()
杰拉尔 2012-08-30
  • 打赏
  • 举报
回复
public static class Extends
{

public static int ToInt(this object o)
{
int reval = 0;
if (o != null && int.TryParse(o.ToString(), out reval))
{
return reval;
}
return 0;
}
}

写一个这样的类 放在你WEB层随你扔哪儿
然后你程序中可以这样调

int i="aa".ToInt()
这是最简单扩展方法的例子
zz2582919627 2012-08-30
  • 打赏
  • 举报
回复
屡试无果。 可以写个小例子么 也找了其他的方法 都不是很合适[Quote=引用 5 楼 的回复:]
将这方法写到一个静态类中
public static class

public static DataTable ToDataTable(System.Data.Linq.DataContext ctx, string sql)
这里面和ado.net写法一样就行了反回个dataTable
}


然后LINQ对像直接可以点出来
[/Quote]
zz2582919627 2012-08-30
  • 打赏
  • 举报
回复
恩 我尝试一下 [Quote=引用 5 楼 的回复:]
将这方法写到一个静态类中
public static class

public static DataTable ToDataTable(System.Data.Linq.DataContext ctx, string sql)
这里面和ado.net写法一样就行了反回个dataTable
}


然后LINQ对像直接可以点出来
[/Quote]
杰拉尔 2012-08-30
  • 打赏
  • 举报
回复
将这方法写到一个静态类中
public static class

public static DataTable ToDataTable(System.Data.Linq.DataContext ctx, string sql)
这里面和ado.net写法一样就行了反回个dataTable
}


然后LINQ对像直接可以点出来
zz2582919627 2012-08-30
  • 打赏
  • 举报
回复
恩 我不是为了绑定 我是要用查询到的数据 进行 word的动态表格绘制和数据填充 数据量较大 List<>的频繁拆装箱 我觉得有些不合适[Quote=引用 3 楼 的回复:]
我觉得Linq返回Dataset或者Datatable是一种退步。

Linq to EF是一种OR 映射,就是 Object和Relationship(数据库)之间的映射。强类型的Object是获得的利益之一,为什么要转换成Dataset/datatable,会丢失这种好处的。

binding什么的也可以捆定到List<>上的。
[/Quote]
宝_爸 2012-08-30
  • 打赏
  • 举报
回复
我觉得Linq返回Dataset或者Datatable是一种退步。

Linq to EF是一种OR 映射,就是 Object和Relationship(数据库)之间的映射。强类型的Object是获得的利益之一,为什么要转换成Dataset/datatable,会丢失这种好处的。

binding什么的也可以捆定到List<>上的。
zz2582919627 2012-08-30
  • 打赏
  • 举报
回复
public DataTable ToDataTable(System.Data.Linq.DataContext ctx, object query)
{
if (query == null)
{
throw new ArgumentNullException("query");
}

IDbCommand cmd = ctx.GetCommand(query as IQueryable);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = (SqlCommand)cmd;
DataTable dt = new DataTable("sd");

try
{
cmd.Connection.Open();
adapter.FillSchema(dt, SchemaType.Source);
adapter.Fill(dt);
}
finally
{
cmd.Connection.Close();
}
return dt;
}
是这个吧 我是没有理解 sql语句从哪里传的[Quote=引用 1 楼 的回复:]
楼主可以学习下扩展方法用法 然后对linq对像进行扩展

如 public static DataTable GetDataTable(this linq对像 db,string q ,params sqlparameter[] ){


}
调用

linq对像. GetDataTable
[/Quote]
杰拉尔 2012-08-30
  • 打赏
  • 举报
回复
楼主可以学习下扩展方法用法 然后对linq对像进行扩展

如 public static DataTable GetDataTable(this linq对像 db,string q ,params sqlparameter[] ){


}
调用

linq对像. GetDataTable

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧