C# winForm 多条件模糊查询实现(主要讲思路,请忽略与数据库(sqlite)相关的代码)

本文介绍了一种使用C#在WinForm应用中实现多条件模糊查询的方法,重点讲解了查询逻辑和代码实现,包括如何遍历数组生成查询条件,并在Sqlite数据库中执行查询。

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

C# winForm 多条件模糊查询实现(主要讲思路,请忽略与数据库(sqlite)相关的代码)

1.窗体设计

2.思路

  通过遍历数组生成查询条件和查询

3.代码

        private void BtnSerch_Click(object sender, EventArgs e){//开始查询按钮

            SerOrder();//查询订单

        }

private void BtnSerClean_Click(object sender, EventArgs e)
{//清空查询条件按钮

DgvSer.Rows.Clear();

TxbSerOrderID.Text = "";
TxbSerMemberID.Text = "";
TxbSerCompany.Text = "";
TxbSerCustomer.Text = "";
TxbSerPhone.Text = "";
TxbSerAdd.Text = "";
CmbSerOpener.Text = "";
CmbSerInstaller.Text = "";
TxbSerOrderSum.Text = "";
CmbSerPrinted.Text = "";

//清空日历
DateTimePicker1.Format = DateTimePickerFormat.Custom;
DateTimePicker1.CustomFormat = " ";

TxbSerOrderID.Focus();

}

private void SerOrder()
{//查询订单

DgvSer.Rows.Clear();//初始化datagridview

//查询语句参数值
string[] paras = { TxbSerOrderID.Text.Trim(), DateTimePicker1.Text.Trim(), TxbSerMemberID.Text.Trim(), TxbSerCompany.Text.Trim(), TxbSerCustomer.Text.Trim(), TxbSerPhone.Text.Trim(), TxbSerAdd.Text.Trim(), CmbSerOpener.Text.Trim(), CmbSerInstaller.Text.Trim(), TxbSerOrderSum.Text.Trim(), CmbSerPrinted.Text.Trim() };
//数据表列名
string[] columns = { "OrderID", "BillingDate", "MemberID", "CompanyName", "CustomerName", "CellphoneNumber", "CustomerAddress", "Opener", "Installer", "OrderSum", "printed" };
string sqlStr = "select * from orders ";
string[] condition = { };//查询语句条件

List<string> condition2 = condition.ToList();//数组转列表

using (SQLiteConnection conn = new SQLiteConnection(dbPath))
{//连接数据库

if (conn.State == ConnectionState.Closed)
{
conn.Open();
}

SQLiteCommand cmd = conn.CreateCommand();

for (int i = 0; i < paras.Length; i++)
{//生成查询语句&查询条件

if (paras[i] == "")
{
continue;
}

condition2.Add(columns[i] + " like @" + columns[i]);
cmd.Parameters.Add(new SQLiteParameter("@" + columns[i], "%" + paras[i] + "%"));
}

condition = condition2.ToArray();

if (condition.Length > 0)
{//有查询条件
string result = String.Join(" and ", condition);
sqlStr += ("where " + result + ";");
}

cmd.CommandText = sqlStr;
SQLiteDataReader reader = cmd.ExecuteReader();
int cols = DgvSer.ColumnCount;

if (reader.HasRows)
{//显示查询结果

while (reader.Read())
{//遍历行

int index = DgvSer.Rows.Add();

for (int i = 0; i < cols - 3; i++)
{//遍历列

if (i == 0)
{//行号
DgvSer.Rows[index].Cells[i].Value = (index + 1).ToString();
}
else
{
DgvSer.Rows[index].Cells[i].Value = reader.GetValue(i).ToString();
}

}
}
}

//关闭数据库连接
reader.Close();
conn.Close();
}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值