欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體

小編給大家分享一下C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在愛民等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),愛民網(wǎng)站建設(shè)費(fèi)用合理。

簡單點(diǎn)來說,高級(jí)查詢關(guān)鍵就是:

select * from 表名 where 字段=’***’ and字段>’***’ or字段<’***’ and字段 like ‘%***%’ or字段<>’***’……,where后面的字符串的拼接。

假如,有辦法獲取到where后面的字符,那么高級(jí)查詢就可以做到了。下面就來利用DataGridView創(chuàng)作高級(jí)查詢。

第一步,先創(chuàng)建一個(gè)窗體FrmSelect.cs,然后修改一些屬性:

                1、  StartPosition屬性值修改為CenterScreen,將窗體顯示作固定。

                2、  ControlBox屬性值修改為False,將窗體的關(guān)閉等按鈕作隱藏。

第二步,添加DataGridView,然后修改一些屬性:

                1、  RowHeaderVisible屬性修改為False,將DataGridView最左邊的空白處作隱藏。

                2、  EditModel屬性修改為EditOnEnter,將DataGridView的雙擊編輯改為單擊編輯。

                3、  添加4列固定列:項(xiàng)目、條件、邏輯的ColumnType都選擇為:

         DataGridViewComboBoXExColumn,賦值的ColumnType選擇為:TextBox的。

效果如下圖:

C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體

    下面來實(shí)現(xiàn),當(dāng)點(diǎn)擊確定時(shí),獲取拼接好的字符串,并關(guān)閉查詢窗體:

一、查詢窗體代碼:

        #region 定義
        public DataTable dt;//用于,接收傳入的數(shù)據(jù)
        public string sql = "";//用于,保存查詢條件生成的字符串
        #endregion
        #region 取消
        private void tsClose_Click(object sender, EventArgs e)
        {
            this.Close();//關(guān)閉查詢窗體
        }
        #endregion
        #region 確定
        private void tsSave_Click(object sender, EventArgs e)
        {
            string ite = "", ope = "", val = "", log = ""; sql = "";
            this.dgv.EndEdit();//結(jié)束DataGridView的編輯狀態(tài)。這句非常重要,若沒有這句則無法獲取正在編輯的值。
            for (int i = 0; i < dgv.Rows.Count - 1; i++)
            {
                if (dgv.Rows[i].Cells[0].Value != null && dgv.Rows[i].Cells[1].Value != null && dgv.Rows[i].Cells[2].Value != null && dgv.Rows[i].Cells[3].Value != null)
                {
                    ite = dgv.Rows[i].Cells[0].Value.ToString().Trim();//項(xiàng)目
                    ope = dgv.Rows[i].Cells[1].Value.ToString().Trim();//條件
                    val = dgv.Rows[i].Cells[2].Value.ToString().Trim();//賦值
                    log = dgv.Rows[i].Cells[3].Value.ToString().Trim();//邏輯
                    //字符串拼接
                    if (ite != "" && ope == "相同" && val != "" && log != "")
                    {
                        sql += log + " " + ite + "='" + val + "' ";
                    }
                    if (ite != "" && ope == "大于" && val != "" && log != "")
                    {
                        sql += log + " " + ite + ">'" + val + "' ";
                    }
                    if (ite != "" && ope == "小于" && val != "" && log != "")
                    {
                        sql += log + " " + ite + "<'" + val + "' ";
                    }
                    if (ite != "" && ope == "包含" && val != "" && log != "")
                    {
                        sql += log + " " + ite + " like '%" + val + "%' ";
                    }
                    if (ite != "" && ope == "除外" && val != "" && log != "")
                    {
                        sql += log + " " + ite + "<>'" + val + "' ";
                    }
                }
            }
            this.Close();//關(guān)閉查詢窗體
        }
        #endregion
        #region 重置
        private void tsWaiver_Click(object sender, EventArgs e)
        {
            //重置DataGridView
            dgv.Rows.Clear();
            sql = "";
        }
        #endregion
        #region 當(dāng)窗體加載完畢時(shí),執(zhí)行
        private void FrmSelect_Load(object sender, EventArgs e)
        {
            SetSelectItems();//設(shè)置高級(jí)查詢條件的選項(xiàng)
        }
        #endregion
        #region 設(shè)置高級(jí)查詢條件的選項(xiàng)
        /// <summary>
        /// 設(shè)置高級(jí)查詢條件的選項(xiàng)
        /// </summary>
        private void SetSelectItems()
        {
            //根據(jù)傳入的DataTable,獲取列名,并添加到“項(xiàng)目”
            this.Column1.Items.Clear();
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                this.Column1.Items.Add(dt.Columns[i].ColumnName);
            }
            //添加條件
            this.Column2.Items.Clear();
            this.Column2.Items.Add("包含");
            this.Column2.Items.Add("相同");            
            this.Column2.Items.Add("大于");
            this.Column2.Items.Add("小于");
            this.Column2.Items.Add("除外");
            //添加邏輯
            this.Column4.Items.Clear();
            this.Column4.Items.Add("And");
            this.Column4.Items.Add("Or");
        }
        #endregion

二、作為主窗體,先點(diǎn)擊高級(jí)查詢按鈕,打開查詢窗體。主窗體代碼:

        #region 高級(jí)查詢
        private void tsSelect_Click(object sender, EventArgs e)
        {
            FrmSelect frmSelect = new FrmSelect();
            frmSelect.dt = sql_Base._GetAllTable("STOCK");//傳入DataTable數(shù)據(jù)            
            frmSelect.ShowDialog();
            string sql = frmSelect.sql;//返回的高級(jí)查詢字符串。
            frmSelect.Dispose();
        }
        #endregion

      綜上,利用DataGridView自身能夠自動(dòng)添加行特點(diǎn),達(dá)到一種動(dòng)態(tài)添加的效果。并且可成功獲得的sql字符串拼接,有了where后面的sql字符串拼接,你想怎么查就怎么查。所以高級(jí)查詢窗體創(chuàng)作是成功的。

    效果圖1:C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體

    效果圖2:C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體

以上是“C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標(biāo)題:C#WinForm如何利用DataGridView創(chuàng)作高級(jí)查詢窗體
當(dāng)前鏈接:http://chinadenli.net/article42/gojohc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序域名注冊自適應(yīng)網(wǎng)站網(wǎng)頁設(shè)計(jì)公司網(wǎng)站導(dǎo)航關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司