多条件查询

本文介绍了一个基于C#的多条件数据库查询实现方法,通过构造动态SQL语句来完成对假劣药信息表的灵活查询。支持按分类、产品名称、生产厂家等多个维度进行筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多条件查询时在做项目的时候不可缺少的功能,虽然很简单,但是自己还是记一下,对自己有用:
/// <summary>
/// 查询事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton查询_Click(object sender, EventArgs e)
{
//设置数据库连接的数据库,用户名,密码等
string sqlConn = String.Format("data source={0};initial catalog={1};uid={2};pwd={3}",this.DataServer,this.DataBase,this.DataUser,this.DataPass);
//初始化连接
SqlConnection conn = null;
SqlCommand comm = null;
try
{
//数据库连接
conn = new SqlConnection(sqlConn);
//获取执行的sql语句
string sql = getSql();
//执行sql语句
comm = new SqlCommand(sql,conn);
//打开数据库
conn.Open();
//绑定comm
SqlDataAdapter sda = new SqlDataAdapter(comm);
//清空数据库
this.dataSet_Data.假劣药信息.Clear();
//重新加载数据库
sda.Fill(this.dataSet_Data.假劣药信息);
this.gridControl1.DataSource = this.dataSet_Data.假劣药信息;

}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
return;
}
finally
{
//关闭资源
comm.Dispose();
conn.Close();
}
}

/// <summary>
/// 执行sql语句
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public string getSql()
{
//基本的sql语句
string sql = "select * from 假劣药信息 where 1=1";
//如果根据分类查询
if (this.TextEdit分类.Text.Trim() != "")
{
sql += " and 分类 like '%" + TextEdit分类.Text.Trim() + "%'";
}
//如果根据产品名称查询
if (this.textEdit产品名称.Text.Trim() != "")
{
sql += "and 产品名称 like '%" + this.textEdit产品名称.Text.Trim() + "%'";
}
//根据生产厂家查询
if (this.TextEdit生产厂家.Text.Trim() != "")
{
sql+="and 生产厂家 like '%"+this.TextEdit生产厂家.Text.Trim()+"%'";
}
//根据批准文号查询
if (this.TextEdit批准文号.Text.Trim() != "")
{
sql += "and 批准文号 like '%" + this.TextEdit批准文号.Text.Trim() + "%'";
}
//根据规格查询
if (this.TextEdit规格.Text.Trim() != "")
{
sql += "and 规格 like '%" + this.TextEdit规格.Text.Trim() + "%'";
}
//根据批号查询
if (this.TextEdit批号.Text.Trim() != "")
{
sql+="and 批号 like '%"+this.TextEdit批号.Text.Trim()+"%'";
}
//根据不合格项目或鉴别要点查询
if (this.TextEdit项目或鉴别.Text.Trim() != "")
{
sql += "and 不合格项目或鉴别要点 like '%"+this.TextEdit项目或鉴别.Text.Trim()+"'";
}
//根据信息来源查询
if (this.TextEdit信息来源.Text.Trim() != "")
{
sql += "and 信息来源 like '%"+this.TextEdit信息来源.Text.Trim()+"%'";
}
//如果根据抽样时间查询
if (this.dateEdit抽样时间.Text.Trim() != "")
{
sql += "and CONVERT(varchar,抽样时间,120) like '%" + this.dateEdit抽样时间.DateTime.ToString("yyyy-MM-dd") + "%'";
}
return sql;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值