欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 中的 join 用法示例

程序员文章站 2024-03-03 16:10:58
...

示例代码:

        private void btnQuery_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();//解决加不加 where 问题的两种方法的比较。
            //加空格或者\n解决两个条件粘连的问题
            //1、用where 1=1解决where该不该加的问题
            sb.Append("select * from T_Customers where 1=1\n");//where 1=1 方法效率相对更低。因为如果不优化数据库时,where 1=1 可能会对数据库进行全体扫描。
            if (cbQueryByName.Checked)
            {
                sb.Append("and Name like @name\n");
            }
            if (cbQueryByMobile.Checked)
            {
                sb.Append("and MobilePhone like @mobile\n");
            }
            if (cbQueryByCarNum.Checked)
            {
                sb.Append("and CarNum like @carnum\n");
            }
            MessageBox.Show(sb.ToString());

            //2、用 join 解决where该不该加的问题
            List<string> listWhere = new List<string>();
            List<SqlParameter> listParameters = new List<SqlParameter>();
            if (cbQueryByName.Checked)//判断复选框触发事件,是否选中该复选框。
            {
                listWhere.Add("Name like @name");
                listParameters.Add(new SqlParameter("name","%"+txtQueryName.Text+"%"));
            }
            if (cbQueryByMobile.Checked)
            {
                listWhere.Add("MobilePhone like @mobile");
                listParameters.Add(new SqlParameter("mobile", "%" + txtQueryMobile.Text + "%"));
            }
            if (cbQueryByCarNum.Checked)
            {
                listWhere.Add("CarNum like @carnum");
                listParameters.Add(new SqlParameter("carnum", "%" + txtQueryCarNum.Text + "%"));
            }
            string sql = "select * from T_Customers\n";
            
            if (listWhere.Count > 0)
            {
                string sqlWhere = string.Join(" and ", listWhere.ToArray());//string.Join 方法效率相对更高。
                sql =sql+" where "+sqlWhere;
            }
            dataGridView1.DataSource = SqlHelper.ExecuteDataTable(sql, listParameters.ToArray());//.ToArray()的作用是转换为数组。
            MessageBox.Show(sql);

        }

 

相关标签: join