看看代码吧。现在我用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的更多相关文章

  1. 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题

    2013-8-5 1 Linq解决DataTable按照某一列的值排序 在之前的总结中提到过对拼接而成的复合的DataTable按照某一列值的大小排序,那个主要的思想是在新建表结构时将要排序的那一列的 ...

  2. linq to datatable 和lambda查询datatable

    用Linq查询DataTable static DataTable table = new DataTable(); static DataColumn dc = new DataColumn(); ...

  3. (转)C#用Linq实现DataTable的Group by数据统计

    本文转载自:http://www.cnblogs.com/sydeveloper/archive/2013/03/29/2988669.html 1.用两层循环计算,前提条件是数据已经按分组的列排好序 ...

  4. Linq查询datatable的记录集合

    通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...

  5. LINQ返回DataTable类型 list转dataset 转换为JSON对象

    using System.Web.Script.Serialization; using System.Collections.Generic; using System.Reflection; us ...

  6. LinQ实现DataTable不定行转列 行列转换,有图

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="LinqDemo2.aspx.c ...

  7. 如何使用linq操作datatable进行分组

    使用微软.net的孩子们应该都知道linq吧,要知道linq可是其他高级语言没有的技术,比如php,java等等,但是起初我对linq的认识只是停留在对 list<> 的泛型集合进行操作, ...

  8. 使用linq 对 DataTable 中的数据进行 查询 与 分类求合

    A:linq 的查询方式写得可以非常简洁如下所示: DataTable dt = null;        private void XtraForm1_Load(object sender, Eve ...

  9. 【转】Linq实现DataTable行列转换

    出处:http://www.cnblogs.com/li-peng/ 转换前的table: 转换后的table: 代码里有详细的说明, 还有一些参数我都截图了下面有 using System;usin ...

随机推荐

  1. 在Windows下解决git ERROR: Permission to XXX.git denied to user

    这种情况一般都是由于登陆了不同的git仓库在本地记录了凭证导致的,比如登陆了两个不同的github账号. 1.控制面板 2.删除凭证再重新提交将会重新输入用户名和密码 以上.

  2. Lua面向对象之二:类继承

    1.类继承 ①代码 Sharp = { } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self --②,self ...

  3. Jmeter - json参数处理

    做一个接口测试,之前用的get请求,key-value形式传参. 后来开发改为了post请求,采用了json形式传参.额,之前也做json形式的传参,但是这次遇到了问题,在此写篇博客,方便大家,也方便 ...

  4. 第 8 章 容器网络 - 054 - 准备 macvlan 环境

    准备 macvlan 环境 macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址,即多个 interface,每个 interface 可以配置 ...

  5. 在dos输入pybot显示不是内部命令,或者显示chromedriver.exe要加入到path中?

    在dos输入pybot显示不是内部命令,或者显示chromedriver.exe要加入到path中? 一直使用robot framework编写脚本,结果有一天输入 pybot XXXX.robot ...

  6. 最多的划分来使数组有序 Max Chunks To Make Sorted

    2018-12-01 11:05:46 一.Max Chunks To Make Sorted 问题描述: 问题求解: 由于没有重复,所以直观的来看对于每个遇到数,其能够被划分出来的前提是其前面已经有 ...

  7. Spring Boot入门第一天:Hello, Spring Boot!

    原文链接 1. 新建一个Maven Web项目. 2. 配置pom.xml文件. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  8. 雷林鹏分享:C# 数组(Array)

    C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合.数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. 声明数组变量并不是声明 number0.number1... ...

  9. LeetCode--389--找不同

    问题描述: 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 示例: 输入: s = "ab ...

  10. 2.3 UML活动图

    活动图定义 活动图描述了在一个过程中,顺序的/并行的活动及其之间的关系 应用于商业过程.工作流(业务过程).复杂算法的建模 活动图是顶点和弧的集合 活动节点 动作 流 对象值 注解和约束等 活动图基本 ...