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
{
}
}
}
}
