多条件查询时在做项目的时候不可缺少的功能,虽然很简单,但是自己还是记一下,对自己有用:
/// <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;
}
/// <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;
}