Department of Social Affairs Q&A System

When I was a draftee of substitute services in Ministry of the Interior, Republic of China(Taiwan), I developed this tool to record our Q&A system.

Futures:

  1. Display questions and answers
  2. Export envelope template
  3. Generate duty roster
  4. Search function

 

QA_System

Query Function:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace QA_DB
{
    public partial class QueryDB : Form
    {
        OleDbConnection conn;
        OleDbDataAdapter myAdapter;
        DataSet myDataSet = new DataSet();
        OleDbCommand cmd;
        string connStr, selectCmd;
        
        public System.Diagnostics.Process p = new System.Diagnostics.Process();
        public QueryDB()
        {
            InitializeComponent();
        }

        private void Query_Btn_Click(object sender, EventArgs e)
        {
            string queryStr = "";
            RichEdit_Result.DataBindings.Clear();
            RichEdit_Question.DataBindings.Clear();
            if (radioButton1.Checked == true)
            {
                queryStr =
                    "Select QDate,QSource,QFrom,Email,Title,Question,Category,Answer,Author,Article,NotReply from QA where Article like '%" + ComboBox_Law.Text + "%'";
                cmd = new OleDbCommand(queryStr, conn);
                myAdapter = new OleDbDataAdapter(queryStr, conn);
                myDataSet.Clear();
                myAdapter.Fill(myDataSet, "QA");
                QA_GridView_Query.DataSource = myDataSet.Tables["QA"];
                //Data Binding       
                RichEdit_Result.DataBindings.Add("Text", myDataSet, "QA.Answer");
                RichEdit_Question.DataBindings.Add("Text", myDataSet, "QA.Question");  
                QA_GridView_Query.DataSource = myDataSet;
                QA_GridView_Query.DataMember = "QA";
            }
            if (radioButton2.Checked == true)
            {
                if (ComboBox_List.Text == "Answer")
                {
                    string multi_sel;
                    
                    
                    multi_sel = TextBox_KeyWord.Text.Replace(" ", "%' and Answer like '%");
                    queryStr =
                        "Select QDate,QSource,QFrom,Email,Title,Question,Category,Answer,Author,Article,NotReply from QA where Answer like '%" + multi_sel + "%'";

                    cmd = new OleDbCommand(queryStr, conn);
                    myAdapter = new OleDbDataAdapter(queryStr, conn);
                    myDataSet.Clear();
                    myAdapter.Fill(myDataSet, "QA");
                    QA_GridView_Query.DataSource = myDataSet.Tables["QA"];
                    //Data Binding
                    RichEdit_Result.DataBindings.Add("Text", myDataSet, "QA.Answer");
                    RichEdit_Question.DataBindings.Add("Text", myDataSet, "QA.Question"); 
                    QA_GridView_Query.DataSource = myDataSet;
                    QA_GridView_Query.DataMember = "QA";
             
                }
                if (ComboBox_List.Text == "Question")
                {
                    string multi_sel;
                    multi_sel = TextBox_KeyWord.Text.Replace(" ", "%' and Question like '%");
                    queryStr =
                        "Select QDate,QSource,QFrom,Email,Title,Question,Category,Answer,Author,Article,NotReply from QA where Question like '%" + multi_sel + "%'";
                    cmd = new OleDbCommand(queryStr, conn);
                    myAdapter = new OleDbDataAdapter(queryStr, conn);
                    myDataSet.Clear();
                    myAdapter.Fill(myDataSet, "QA");
                    QA_GridView_Query.DataSource = myDataSet.Tables["QA"];
                    //Data Binding
                    RichEdit_Result.DataBindings.Add("Text", myDataSet, "QA.Answer");
                    RichEdit_Question.DataBindings.Add("Text", myDataSet, "QA.Question"); 
                    QA_GridView_Query.DataSource = myDataSet;
                    QA_GridView_Query.DataMember = "QA";
                }

            }
            Preview.DataGrid_Title(QA_GridView_Query);

        }

        private void QueryDB_Load(object sender, EventArgs e)
        {

            connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=QA.mdb";
            selectCmd = "Select QDate,QSource,QFrom,Email,Title,Question,Category,Answer,Author,Article,NotReply from QA order by ID";
            conn = new OleDbConnection(connStr);
            conn.Open();
            QA_GridView_Query.Height = this.Height / 3;
            
        }

        private void QueryDB_FormClosed(object sender, FormClosedEventArgs e)
        {
            Form1.MDIChildrenCount--;
            Form1.queryisOpen = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            QA_GridView_Query.DataSource = null;
        }

        private void QueryDB_Resize(object sender, EventArgs e)
        {
            QA_GridView_Query.Height = this.Height / 3;
            RichEdit_Result.Width = this.Width - 530;
        }

        private void RichEdit_Result_LinkClicked(object sender, LinkClickedEventArgs e)
        {
            p = System.Diagnostics.Process.Start("IExplore.exe", e.LinkText);
        }

        private void QA_GridView_Query_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                Color[] ran_color = { Color.Red, Color.Blue, Color.Brown, Color.Purple, Color.Goldenrod, Color.Green, Color.BlanchedAlmond };
                string[] sub_str = new string[15];
                char[] delimit = new char[] { ' ' };
                int i = 0;
                foreach (string substr in TextBox_KeyWord.Text.Split(delimit))
                {
                    sub_str[i] = substr;
                    int pos;// = RichEdit_Result.Find(sub_str[i]);
                    int start=0;
                    int end=RichEdit_Result.Text.Length;
                   // RichEdit_Result.SelectionColor = Color.Red;
                    while (RichEdit_Result.Find(sub_str[i], start,end, RichTextBoxFinds.None)>=0 && start!=end)
                    {
                        pos = RichEdit_Result.Find(sub_str[i], start, RichTextBoxFinds.None);
                        RichEdit_Result.Select(pos, sub_str[i].Length);
                        RichEdit_Result.SelectionColor = ran_color[i];
                        System.Drawing.Font currentFont = RichEdit_Result.SelectionFont;
                        System.Drawing.FontStyle newFontStyle;

                        newFontStyle = FontStyle.Bold;
                        newFontStyle = FontStyle.Underline;

                        RichEdit_Result.SelectionFont = new Font(
                           currentFont.FontFamily,
                           currentFont.Size,
                           newFontStyle
                        );

                        start = RichEdit_Result.Find(sub_str[i], start, end, RichTextBoxFinds.None) +sub_str[i].Length;
                        
                    }
                    
                    i++;
                }
                
            }
            catch
            {
            }
        }
    }
}

 

Leave a Reply