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:
- Display questions and answers
- Export envelope template
- Generate duty roster
- Search function
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 { } } } }