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

    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();
                }
            }

    复制代码

  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/grj001/p/12224594.html
Copyright © 2011-2022 走看看