help....帮我看看为什么输入查询条件时,还是显示所有数据...

leeto_king 2006-06-14 05:17:41
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace CrystalEg
{
/// <summary>
/// CrystalPush 的摘要说明。
/// </summary>
public class CrystalPush : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox tb;
protected System.Web.UI.WebControls.Button bt;
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;

private void Page_Load(object sender, System.EventArgs e)
{
this.BindReport();
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.bt.Click += new System.EventHandler(this.bt_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void BindReport()
{
string word = "",sql = "";
//指定连接数据库字符串
string strConn = "Server=127.0.0.1;DataBase=Northwind;UID=sa;PWD=";
//实例化报表文件
CrystalReport2 oCR = new CrystalReport2();
//实例化数据集
Dataset1 ds = new Dataset1();
//获得连接
SqlConnection MyConn = new SqlConnection(strConn);
MyConn.Open();
//查询语句
sqllist();
sql = "select * from Customers "+ word +"";
//实例化数据适配器
SqlDataAdapter MyAdapter = new SqlDataAdapter(sql,MyConn);
//填充数据集
MyAdapter.Fill(ds,"Customers");
//报表文件绑定数据集
oCR.SetDataSource(ds);
//指定CrystalReportViewer1控件的ReportSource属性
this.CrystalReportViewer1.ReportSource = oCR;
}

#region 查询条件
public void sqllist()
{
string word = "",ttb = "";

if(Request.QueryString["tb"] != null)
{
ttb = Request.QueryString["tb"].ToString();
if(ttb.ToString() != "")
{
if(word.ToString() == "")
{
word += "where ";
}
else
{
word += " and ";
}

word += "customerid like '%" + ttb + "%' ";

}
}
}
#endregion

#region 查询
public void bt_Click(object sender,System.EventArgs e)
{
string ttb = "";
ttb = tb.Text;
if(ttb.ToString() == "")
{
Response.Write("<script language='javascript'>alert('请输入关键字!');history.back();</script>");
return;
}
else
{
Response.Redirect("CrystalPush.aspx?tb="+ Server.UrlEncode(ttb) +"");
}
}
#endregion
}
}
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeto_king 2006-06-15
  • 打赏
  • 举报
回复
搞掂.
leeto_king 2006-06-15
  • 打赏
  • 举报
回复
首先谢谢两位先....
public void sqllist(ref word)
提示输入标识符....
aspdotnet2005 2006-06-14
  • 打赏
  • 举报
回复
这个函数BindReport()定义了word ,但一直保持空
虽然你调用sqllist(),对BindReport()没有啥关系的,不是同一变量
所以查询的一直是全部
--------
可以这样
sqllist(ref word);
---------
#region 查询条件
public void sqllist(ref word)
{
string ttb = "";

if(Request.QueryString["tb"] != null)
{
ttb = Request.QueryString["tb"].ToString();
if(ttb.ToString() != "")
{
if(word.ToString() == "")
{
word += "where ";
}
else
{
word += " and ";
}

word += "customerid like '%" + ttb + "%' ";

}
}
}
ymfsuper 2006-06-14
  • 打赏
  • 举报
回复
真服了你,代码贴一些关键就好了,这样看半天;

帮你修正下:

MyConn.Open();
sql = "select * from Customers where 1=1";
if (tb != "")
sql += " and customerid like '%" +tb+ "%'";
//实例化数据适配器
SqlDataAdapter MyAdapter = new SqlDataAdapter(sql,MyConn);
//填充数据集
MyAdapter.Fill(ds,"Customers");
//报表文件绑定数据集
oCR.SetDataSource(ds);
//指定CrystalReportViewer1控件的ReportSource属性
this.CrystalReportViewer1.ReportSource = oCR;

62,074

社区成员

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

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

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

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