高分求助,数据查询问题

jcxpy910 2016-02-22 04:19:51
在rdlc报表中添加一个查询功能,点击按钮后即将查询的数据显示在报表中。
请问一下这个代码应该怎么写。。。求帮助
...全文
207 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcxpy910 2016-02-23
  • 打赏
  • 举报
回复
谢谢各位的帮助,我已经自己解决问题了,虽然不是用的大家给的代码,但是还是真心的感谢各位大神。我只是一个菜鸟,所以大家能不厌其烦的帮助我,我真的很感谢。
正怒月神 2016-02-23
  • 打赏
  • 举报
回复
你添加了 Report2.rdcl吗? 如果添加了,那你把vs关闭,然后右键vs管理员身份运行,然后在看看
jcxpy910 2016-02-23
  • 打赏
  • 举报
回复
那两个button暂时不影响什么。主要还是前面代码的原因 @正怒月神
jcxpy910 2016-02-23
  • 打赏
  • 举报
回复
我的错,我把代码和错误提示贴出来。各位大神帮我看看吧。
 private void bb_Load(object sender, EventArgs e)
        {
            LoadReport("");
            this.jjypTableAdapter1.Fill(this.xsxxdbDataSet1.jjyp);
            this.reportViewer1.RefreshReport();
            this.reportViewer1.RefreshReport();
            this.reportViewer1.RefreshReport();
            this.reportViewer1.RefreshReport();
            this.reportViewer1.RefreshReport();


        }



        private void LoadReport(string queryCondition)
        {
            reportViewer1.LocalReport.ReportPath = "Report2.rdlc";
            DataTable dt = GetData(queryCondition);
            ReportDataSource rds = new ReportDataSource("DataSet1", dt);
            reportViewer1.LocalReport.DataSources.Clear();
            reportViewer1.LocalReport.DataSources.Add(rds);
            reportViewer1.LocalReport.Refresh();
        }

        private DataTable GetData(string queryCondition)
        {

            DataTable dt = new DataTable("DataTable1");
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Dept", typeof(string)));

            DataRow row = dt.NewRow();
            row["Name"] = "张三";
            row["Dept"] = "人事部门";
            dt.Rows.Add(row);

            row = dt.NewRow();
            row["Name"] = "李四";
            row["Dept"] = "人事部门";
            dt.Rows.Add(row);

            row = dt.NewRow();
            row["Name"] = "王五";
            row["Dept"] = "技术部门";
            dt.Rows.Add(row);

            if (string.IsNullOrEmpty(queryCondition))
                return dt;
            else
            {
                return dt.Select("Dept='" + queryCondition + "'").CopyToDataTable();
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            LoadReport("人事部门");
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            LoadReport("人事部门");
        }
错误提示 :如下图
正怒月神 2016-02-23
  • 打赏
  • 举报
回复
楼上都给了你代码了,你说还是不对,不对在哪?
jcxpy910 2016-02-23
  • 打赏
  • 举报
回复
还是不对。哎,有没有高手啊。。
csdnFUCKINGSUCKS 2016-02-22
  • 打赏
  • 举报
回复
主要代码如下,其实就是更新报表的数据源,这里没用到从数据库中查询,以datatable模拟,道理是一样的。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        LoadReport("");
    }
}

private void LoadReport(string queryCondition)
{
    ReportViewer1.LocalReport.ReportPath = "Report1.rdlc";
    DataTable dt = GetData(queryCondition);
    ReportDataSource rds = new ReportDataSource("DataSet1", dt);
    ReportViewer1.LocalReport.DataSources.Clear();
    ReportViewer1.LocalReport.DataSources.Add(rds);
    ReportViewer1.LocalReport.Refresh();
}

private DataTable GetData(string queryCondition)
{

    DataTable dt = new DataTable("DataTable1");
    dt.Columns.Add(new DataColumn("Name", typeof(string)));
    dt.Columns.Add(new DataColumn("Dept", typeof(string)));

    DataRow row = dt.NewRow();
    row["Name"] = "张三";
    row["Dept"] = "人事部门";
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["Name"] = "李四";
    row["Dept"] = "人事部门";
    dt.Rows.Add(row);

    row = dt.NewRow();
    row["Name"] = "王五";
    row["Dept"] = "技术部门";
    dt.Rows.Add(row);

    if (string.IsNullOrEmpty(queryCondition))
        return dt;
    else
    {
        return dt.Select("Dept='"+ queryCondition +"'").CopyToDataTable();
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    LoadReport("人事部门");
}
  • 打赏
  • 举报
回复
http://www.cnblogs.com/wjhx/archive/2006/04/21/381644.html 看过那篇,那应该也看过这篇吧 例子里面有这么一段
System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand("select * from customers", conn1);
后面的不就是sql吗?你可以按你查询的条件按同样规则组织后来传递啊
jcxpy910 2016-02-22
  • 打赏
  • 举报
回复
二楼的兄弟,你这不是废话么。。我就是不知道怎么代码怎么写。你发给我的连接我很久以前就看过了。你大概没做过报表的功能吧,这个和绑定datagridview这种控件有些不大一样。我问了很久,都没人告诉我怎么弄
xiaozheyou 2016-02-22
  • 打赏
  • 举报
回复
直接加一个查询按钮就可以 然后将长查询的结构绑定到 rdlc中 http://www.cnblogs.com/wjhx/archive/2006/04/19/379604.html

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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