亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        應(yīng)用系統(tǒng)中通用組合查詢功能的實現(xiàn)方法

        2018-11-15 01:33:54邵雨舟
        電腦知識與技術(shù) 2018年20期

        摘要:組合查詢功能在信息系統(tǒng)軟件中應(yīng)用較廣,在運行中使用者可以根據(jù)自己的查詢需要從下拉列表框中選擇要查詢的項目,將多個條件通過關(guān)系運算符進行連接,從而實現(xiàn)多個條件的組合查詢。查詢條件可任意組合,查詢結(jié)果顯示在GridView控件中。該文結(jié)合自己的開發(fā)體會,介紹組合查詢功能在系統(tǒng)中的實現(xiàn)方法。

        關(guān)鍵詞:ASP.NET;組合查詢;代碼實現(xiàn)

        中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)20-0007-03

        一個完善的應(yīng)用系統(tǒng)程序中,查詢功能是其重要的組成部分,靈活的查詢方法、不同的查詢需求是使用者對系統(tǒng)提出的更高的要求,如果只能滿足固定條件和固定內(nèi)容的查詢,會限制系統(tǒng)使用的靈活性。如果能讓使用者自己選擇查詢條件,篩選查看的項目,就能夠完善我們的查詢功能。

        在設(shè)計畢業(yè)生就業(yè)管理信息系統(tǒng)的過程中,我們就開發(fā)了通用的查詢功能模塊,為了滿足對畢業(yè)生不同信息的查詢需要,在系統(tǒng)中我們定義了不同查詢條件的選擇方式,而且還可以靈活地使用多個條件的組合查詢,支持查詢內(nèi)容的模糊查詢,可以實時地查看所形成的查詢語句,最后將查詢結(jié)果用數(shù)據(jù)表的形式輸出顯示。

        雖然系統(tǒng)是基于asp.net技術(shù)開發(fā)的,但基本的方法和設(shè)計思路對使用其他語言開發(fā)仍然具有一定的指導(dǎo)作用。

        下面以系統(tǒng)中的畢業(yè)生信息查詢?yōu)槔齺斫榻B實現(xiàn)的方法和設(shè)計思路。

        1 頁面的設(shè)計

        系統(tǒng)采用的是Web頁面的實現(xiàn)方式,在頁面中添加了實現(xiàn)選擇"查詢字段"和"算術(shù)運算符"的下拉列表框控件,然后再添加一個單行文本框用來輸入查詢要比較的參考值,這樣就可以實現(xiàn)一個查詢條件的定義。再添加一個選擇下拉列表框,用于實現(xiàn)組合條件邏輯運算的選擇,其中包含邏輯與運算和邏輯或運算的選擇。

        最后再添加三個命令按鈕,分別實現(xiàn):執(zhí)行最終結(jié)果的查詢、重新選擇新的查詢條件、結(jié)束查詢。

        為了便于查看實現(xiàn)的SELECT查詢命令,我們可以添加一個多行文本框,將選擇過程中的命令顯示在多行文本框中。

        在下方添加一個GridView控件,用來顯示組合查詢的結(jié)果。

        其中包含的控件類型及ID依次為:

        包含查詢字段的下拉列表框(field_name)、包含關(guān)系運算符的下拉列表框(operate)、輸入查詢值的文本框(query_value)、選擇邏輯運算符的下拉列表框(logic_operate)、執(zhí)行查詢命令按鈕控件(search)、重新選擇命令按鈕控件(again)、結(jié)束命令按鈕控件(btn_ret)、選擇命令結(jié)果顯示文本框(command_display)、查選結(jié)果顯示在數(shù)據(jù)控件(result)。

        2 執(zhí)行查詢過程

        1)查詢下拉列表框中綁定的是可以使用查詢的全部字段,可以從中選擇要查詢的項目名稱;

        2)從關(guān)系下拉列表框選擇要執(zhí)行的操作運算符,其中包含模糊查詢的運算符;

        3)在輸入查詢值的文本框中輸入要查詢的值,回車確認(rèn),此時形成的SELECT命令就會顯示在命令結(jié)果顯示文本框中;

        4)如果繼續(xù)選擇其他條件,單擊選擇邏輯運算符的下拉列表框,從中選擇邏輯與或者邏輯或運算;如果不再選擇其他查詢條件,可以直接點擊執(zhí)行查詢命令按鈕;

        5)若繼續(xù)選擇,則重復(fù)前面的操作;若選擇執(zhí)行查詢,則查詢結(jié)果會顯示在GridView控件中。

        3 設(shè)計過程說明

        3.1 綁定要查詢的字段名

        將需要查詢數(shù)據(jù)表:student_employee的字段名綁定到查詢字段的下拉列表框控件(field_name)上 ,為了便于用戶理解字段名稱的含義,可以先建立一個數(shù)據(jù)字典的表,包含查詢數(shù)據(jù)表中的字段名和對應(yīng)的中文解釋。在沒有選擇要查詢的字段之前,關(guān)系運算符的下拉列表框、輸入查詢值的文本框、邏輯運算符的下拉列表框、執(zhí)行查詢命令按鈕的狀態(tài)都是不可使用的,可以將它們的Enabled屬性都為假值。

        protected void Page_Load(object sender, EventArgs e)

        {

        if (!IsPostBack)

        { SqlConnection cn = new SqlConnection(“server=.;database=employee;uid=sa;pwd=”);

        cn.Open();

        DataTable dt = new DataTable();

        string sql = "SELECT Name FROM SysColumns WHERE id=Object_Id('student_employee')";

        SqlDataAdapter da = new SqlDataAdapter(sql, cn);

        da.Fill(dt);

        field_name.DataValueField = "Name";

        field_name.DataTextField = "Name";

        field_name.DataSource = dt;

        field_name.DataBind();

        field_name.Items.Add("選擇字段...");

        field_name.SelectedIndex = field_name.Items.Count - 1;

        field_name.Enabled = true;

        operate.Enabled = false;

        query_value.Enabled = false;

        logic_operate.Enabled = false;

        search.Enabled = false;

        command_display.Text = select_command;

        }

        }

        3.2 選擇查詢的字段名

        對于形成的查詢命令結(jié)果可以使用一個變量保存,在查詢開始之前,對該變量進行基本的初始化賦值,形成查詢命令的基本框架:

        static string select_command = "select * from student_employee_info where (";

        把從字段列表框中選擇查詢的字段名添加到命令變量中(要先將下拉列表框的AutoPostBack屬性設(shè)成True):

        protected void field_name_SelectedIndexChanged(object sender, EventArgs e)

        {

        select_command = select_command + field_name.SelectedValue + " ";

        field_name.Enabled = false;

        operate.Enabled = true;

        operate.Focus();

        operate.SelectedIndex = operate.Items.Count - 1;

        command_display.Text = select_command;

        }

        3.3 選擇運算符

        選擇字段名后,關(guān)系運算符列表框就可以選擇操作了,從中選中某個運算符之后,就可以在文本框中輸入要查詢的數(shù)據(jù)值了:

        protected void operate_SelectedIndexChanged(object sender, EventArgs e)

        {

        string str;

        field_name.Enabled = false;

        operate.Enabled = false;

        query_value.Enabled = true;

        query_value.Focus();

        query_value.Text="";

        str = operate.SelectedValue;

        switch (str)

        {

        case "=":

        {

        select_command = select_command + operate.SelectedValue + "'";

        break;

        }

        case "!=":

        {

        select_command = select_command + operate.SelectedValue + "'";

        break;

        }

        default:

        {

        select_command = select_command + " like '%";

        break;

        }

        }

        command_display.Text = select_command;

        }

        3.4 輸入要查詢的值

        在文本框中輸入要查詢的字段值,直接回車,邏輯運算選擇框控件可用:

        protected void query_value_TextChanged(object sender, EventArgs e)

        { logic_operate.SelectedIndex = logic_operate.Items.Count - 1;

        field_name.Enabled = false;

        operate.Enabled = false;

        query_value.Enabled = false;

        logic_operate.Enabled = true;

        search.Enabled = true;

        if(operate.SelectedValue=="like")

        select_command = select_command +query_value.Text+ "%') ";

        else

        select_command = select_command + query_value.Text + "') ";

        command_display.Text = select_command;

        logic_operate.Focus();

        }

        3.5 選擇邏輯運算符

        以上操作過程完成了一個查詢條件的定義,如果還需要添加其他條件,可以從邏輯運算符中選擇“與”或者“或”運算,然后重復(fù)執(zhí)行2,繼續(xù)添加其他的條件;如果不希望添加其他條件則直接按“執(zhí)行查詢”命令按鈕,運行查詢命令。

        protected void logic_operate_SelectedIndexChanged(object sender, EventArgs e)

        {

        search.Enabled = false;

        logic_operate.Enabled = false;

        field_name.Enabled = true;

        field_name.Focus();

        select_command = select_command + logic_operate.SelectedValue + " (";

        command_display.Text = select_command;

        }

        3.6 執(zhí)行查詢

        單擊“執(zhí)行查詢”命令按鈕開始查詢,并將查詢結(jié)果綁定到GridView控件(ID:result)上。

        protected void search_Click(object sender, EventArgs e)

        {

        SqlConnection cn = new SqlConnection(“server=.;database=employee;uid=sa;pwd=”);

        cn.Open();

        DataTable dt = new DataTable();

        SqlDataAdapter da = new SqlDataAdapter(select_command, cn);

        da.Fill(dt);

        result.DataSource = dt;

        result.DataBind();

        send.Visible = true;

        }

        3.7 重新選擇

        單擊“重新選擇”命令按鈕,清除前面的選擇結(jié)果。

        protected void again_Click(object sender, EventArgs e)

        {

        field_name.SelectedIndex = field_name.Items.Count - 1;

        logic_operate.SelectedIndex = logic_operate.Items.Count - 1;

        operate.SelectedIndex = operate.Items.Count - 1;

        field_name.Enabled = true;

        operate.Enabled = false;

        query_value.Enabled = false;

        logic_operate.Enabled = false;

        search.Enabled = false;

        query_value.Text = "";

        select_command = "select * from student_employee_info where (";

        command_display.Text = select_command;

        result.DataSource = null;

        result.DataBind();

        }

        4 建議

        該文只是針對一個數(shù)據(jù)表的查詢進行了介紹,如果系統(tǒng)希望實現(xiàn)對多個數(shù)據(jù)表查詢,可以創(chuàng)建一個查詢數(shù)據(jù)表,其中字段table_name包含可以查詢使用的表名,將需要的表明添加在此數(shù)據(jù)表中,可以先讓用戶選擇需要查詢的數(shù)據(jù)表名。然后再創(chuàng)建一個數(shù)據(jù)字典表,包含:table_name、field_name、field_explain字段,分別對應(yīng)數(shù)據(jù)表名、字段標(biāo)識、中文含義,當(dāng)用戶選擇要查詢的數(shù)據(jù)表之后,可以從中選擇該表的可以供查詢的字段綁定在字段選擇下拉列表框中,這樣就可以實現(xiàn)不同數(shù)據(jù)表的組合查詢了。

        參考文獻:

        [1] 邵雨舟. 畢業(yè)生就業(yè)跟蹤系統(tǒng)中郵件群發(fā)功能的實現(xiàn)[J]. 電腦與電信, 2015(7).

        亚洲国产香蕉视频欧美| 久久免费精品日本久久中文字幕| 美女人妻中文字幕av| 女主播啪啪大秀免费观看| 日本添下边视频全过程| 欧美黑吊大战白妞| 亚洲中文字幕无码久久2020| 亚洲国产精品久久久性色av| 91久国产在线观看| 人妻在线中文字幕视频| 一区二区亚洲精美视频| 人妻少妇中文字幕久久 | 亚洲啪啪AⅤ一区二区三区| 久久熟女精品—区二区蜜臀| 国产成人av三级在线观看韩国 | 日本在线一区二区三区观看| 亚洲国产丝袜久久久精品一区二区 | 国产精品亚洲av高清二区| 女人脱了内裤趴开腿让男躁| 亚洲国产精品尤物yw在线观看 | 日本av一区二区在线| 日韩网红少妇无码视频香港| 国产熟女高潮视频| 欧美老熟妇又粗又大| 亚洲一区二区三区偷拍自拍| 亚洲女人毛茸茸粉红大阴户传播 | 色噜噜色哟哟一区二区三区| 亚洲自偷自拍另类第1页| 国产福利姬喷水福利在线观看| 巨臀精品无码AV在线播放| 国产国语按摩对白av在线观看 | 亚洲综合天堂av网站在线观看| 中文字幕亚洲精品一区二区三区| 亚洲国产精品国自产拍av| 香蕉久久夜色精品国产2020| 中文精品久久久久中文| 天堂久久一区二区三区| 黑人巨大精品欧美一区二区免费| 成人午夜毛片| 少妇性l交大片免费快色| 在线无码中文字幕一区|