用linq和datatable巧妙应用于微软报表rdlc
看看代码吧。现在我用Linq已经上瘾,对SQL语言已经几乎不用了,可惜的是rdlc不支持linq,要采用sql语言生成datatable,用datatable绑定rdlc,这里,应用了一个技巧,解决了这个问题。
还是那句话:看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.Configuration;//调用配置
namespace aspnet_nczx_xsxk
{
public partial class yj_cs_bb : System.Web.UI.Page
{
private nczx_xsxkEntities sjklj = new nczx_xsxkEntities();//数据库连接
private webncxk_class gj = new webncxk_class();//调用类中有关的函数
protected void Page_Load(object sender, EventArgs e)
{
try
{
//防止恶意登录
admin_user dq_gly = Session["stjBEF985E"] as admin_user;
if (dq_gly == null)
{
this.Response.Redirect("~/Login.aspx");
return;
}
}
catch
{
this.Response.Redirect("~/Login.aspx");
// this.btn_xx_cx.Text = err.Message;
}
if(!IsPostBack)
{
// //用linq生成的数据填充自己定义的dataset
// this.Response.Redirect("~/yj_cs_bb.aspx?cs=" + cs);
/*
string connstring = ConfigurationManager.ConnectionStrings["qsxkConnectionString"].ConnectionString;
// string connstring = "Data Source=.\\SQL2008R2;Initial Catalog=qsxk;Integrated Security=True";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM Xs_xk";
conn.Open();
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
try
{
SqlDataAdapter ada1 = new SqlDataAdapter(cmd);
ada1.Fill(dt);
}
finally
{
conn.Close();
cmd.Dispose();
conn.Dispose();
}
*/
try
{
DataTable dt = new DataTable();//建立数据表结构
dt.Columns.Add("Kcmc", typeof(string));
dt.Columns.Add("Jsxm", typeof(string));
dt.Columns.Add("Sknd", typeof(string));
dt.Columns.Add("Xq", typeof(string));
dt.Columns.Add("Xm", typeof(string));
dt.Columns.Add("Xz", typeof(string));
dt.Columns.Add("Bj", typeof(string));
dt.Columns.Add("sjdd", typeof(string));
//分离查询条件
// string cs = sknd + "|" + xq + "|" + nj+"|"+dq_gly.dwid.ToString();//还要加:学校id,和“管理员”或教师姓名,如果是教师姓名,就转向教师查看选修课程的数据页面
string[] cxtj = this.Request.QueryString["cs"].ToString().Split('|');
string sknd = cxtj[0];
string xq = cxtj[1];
string nj = cxtj[2];
int dwid = int.Parse(cxtj[3].Trim());
var cx_db_xk = from aa in sjklj.Xs_xk
where aa.Sknd == sknd && aa.Xq == xq && aa.Xz == nj && aa.dwid == dwid
select aa;
foreach(var kk in cx_db_xk)
{
DataRow dr = dt.NewRow();
dr["Kcmc"] = kk.Kcmc;
dr["Jsxm"] = kk.Jsxm;
dr["Sknd"] = kk.Sknd;
dr["Xq"] = kk.Xq;
dr["Xm"] = kk.Xm;
dr["Xz"] = kk.Xz;
dr["Bj"] = kk.Bj;
dr["sjdd"] = kk.sjdd;
dt.Rows.Add(dr);
}
ReportDataSource rds = new ReportDataSource("DataSet1", dt);
this.ReportViewer1.LocalReport.DataSources.Clear();
this.ReportViewer1.LocalReport.DataSources.Add(rds);
//为报表浏览器指定报表文件
this.ReportViewer1.LocalReport.ReportEmbeddedResource = "aspnet_nczx_xsxk.Report1.rdlc"; //指定数据集,数据集名称后为表,不是DataSet类型的数据集
}
catch
{
}
}
}
}
}
用linq和datatable巧妙应用于微软报表rdlc的更多相关文章
- 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题
2013-8-5 1 Linq解决DataTable按照某一列的值排序 在之前的总结中提到过对拼接而成的复合的DataTable按照某一列值的大小排序,那个主要的思想是在新建表结构时将要排序的那一列的 ...
- linq to datatable 和lambda查询datatable
用Linq查询DataTable static DataTable table = new DataTable(); static DataColumn dc = new DataColumn(); ...
- (转)C#用Linq实现DataTable的Group by数据统计
本文转载自:http://www.cnblogs.com/sydeveloper/archive/2013/03/29/2988669.html 1.用两层循环计算,前提条件是数据已经按分组的列排好序 ...
- Linq查询datatable的记录集合
通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...
- LINQ返回DataTable类型 list转dataset 转换为JSON对象
using System.Web.Script.Serialization; using System.Collections.Generic; using System.Reflection; us ...
- LinQ实现DataTable不定行转列 行列转换,有图
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LinqDemo2.aspx.c ...
- 如何使用linq操作datatable进行分组
使用微软.net的孩子们应该都知道linq吧,要知道linq可是其他高级语言没有的技术,比如php,java等等,但是起初我对linq的认识只是停留在对 list<> 的泛型集合进行操作, ...
- 使用linq 对 DataTable 中的数据进行 查询 与 分类求合
A:linq 的查询方式写得可以非常简洁如下所示: DataTable dt = null; private void XtraForm1_Load(object sender, Eve ...
- 【转】Linq实现DataTable行列转换
出处:http://www.cnblogs.com/li-peng/ 转换前的table: 转换后的table: 代码里有详细的说明, 还有一些参数我都截图了下面有 using System;usin ...
随机推荐
- 你真的了解restful api吗?
前言 在以前,一个网站的完成总是“all in one”,页面,数据,渲染全部在服务端完成,这样做的最大的弊端是后期维护,扩展极其痛苦,开发人员必须同时具备前后端知识.于是慢慢的后来兴起了前后端分离的 ...
- 从flask视角理解angular(三)ORM VS Service
把获取模型数据的任务重构为一个单独的服务,它将提供英雄数据,并把服务在所有需要英雄数据的组件间共享. @Injectable() export class HeroService { getHeroe ...
- JAVA基础知识总结:二十一
一.URL和URLConnection 1.HTTP 超文本传输协议 是一个应用层的协议 是一个被动的协议 只有客户端主动给服务端发送消息,服务端才会给客户端一个响应 2.URL 统一的资源定位符(网 ...
- linux下安装nginx以及常用命令指南
安装nginx之前,要先在服务器上安装nginx运行所需要的依赖包 目录选择:一般选择 "/usr/local/" 1.安装PCRE库 离线安装包:https://pan.baid ...
- (转)C# Delegate.Invoke、Delegate.BeginInvoke
Delegate的Invoke.BeginInvoke 1.Delegate.Invoke (委托同步调用) a.委托的Invoke方法,在当前线程中执行委托. b.委托执行时阻塞当前线程,知道委托执 ...
- .net WinForm 的数据绑定
.net WinForm 的数据绑定相当灵活 http://www.cnblogs.com/ydong/archive/2006/04/22/381847.html 原来只知道 Control 类上的 ...
- 使用VueCLI的User Interface Tool(GUI)创建app的图文讲解
(英文原文) 需要安VueCLI3和nodejs. 在terminal输入vue可以看到命令列表: 其中vue ui [options] 就是用于开始和打开vue-cli ui的命令. 使用http: ...
- POJ-3107 Godfather 求每个节点连接的联通块数量
dp[n][2],维护儿子的联通块数量和父亲的联通块数量. 第一遍dfs求儿子,第二遍dfs求爸爸. #include<iostream> #include<cstring> ...
- apiCloud 浏览图片
点击链接查看api详情 https://docs.apicloud.com/Client-API/Func-Ext/photoBrowser var photoBrowser = api.requir ...
- gitlab 集成Jenkins
项目:使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是Git插件,还可以安装svn插件 我们将git路径存在这里还需要权限认证,否则会出现error 我 ...