序文 |
フローチャート |
フローチャートは、すべてのアイデアのソースコードです。非常に重要。私が一番の理由は、すべての時間の上に置く理由です。フローチャートは、私の考えでは、コードを取得する方法である、私が描く方法です。
複合クエリーは、各ステップが描か達成するためにどのように、あなたは理解しますが、それはまだ非常に簡単です、我々限り、難しいことではありません。私は少し難しいと言っている:フィールドに応じて、さまざまなコントロールの出現は、これも実際の動作が困難なことです。もう一つのポイントは、の組み合わせとの間の関係を決定することである。選択されていない組み合わせの間の関係は、最初のクエリ行に記載されている2は、第一の関係の組合せを表示、最初の関係は、クエリ行目と2行目で表される;. 3. 2つの組み合わせの間の関係は、それが悪いフォームの関係上のすべてのクエリを過ごすために持っていることを意味使用していました。
実際には、この事に関するお問い合わせの組み合わせ。すべての以下のフローチャートの(多くの場所で非常に専門的ではありませんが、私の思考の記録を防ぐことはできませんが)。
コード表示 |
UI层
オブジェクト指向のロジックのアイデアはBLLを置く必要性を判断するために必要なので、判断の多くは、ここに置くべきではありませんが、フローチャートの明確な説明はどこ、私のUI層です。私のアイデアのより流暢なパフォーマンスのために。もちろん、後の時間は、オブジェクト指向の考え方に厳密に従っを最適化しますか。場合... elseロジックの上に構築された場合:コアコードは、ということです。他のすべてが非常に簡単になります。
namespace UI
{
public partial class frmStudentInfoDefend : Form
{
public frmStudentInfoDefend()
{
InitializeComponent();
}
//封装一个方法
public string English(string str)
{
switch (str)
{
case "卡号":
return "cardno";
case "学号":
return "studentNo";
case "姓名":
return "studentName";
case "性别":
return "sex";
case "专业":
return "department";
case "年级":
return "grade";
case "班级":
return "classno";
default:
return "";
}
}
private void cmdQuery_Click(object sender, EventArgs e)
{
//实例化Model层
StudentInfo studentinfo = new StudentInfo();
//实例化Facade层
fStudentInfoDefend fstudentinfodefend = new fStudentInfoDefend();
//将UI层的数据传入Model层
studentinfo.cmbName1 =English(cmbName1.Text.Trim());
studentinfo.cmbName2 = English(cmbName2.Text.Trim());
studentinfo.cmbName3 = English(cmbName3.Text.Trim());
studentinfo.cmbOpert1 = cmbOpert1.Text.Trim();
studentinfo.cmbOpert2 = cmbOpert2.Text.Trim();
studentinfo.cmbOpert3 = cmbOpert3.Text.Trim();
studentinfo.cmbGroupQuery1 = cmbGroupQuery1.Text.Trim();
studentinfo.cmbGroupQuery2 = cmbGroupQuery2.Text.Trim();
studentinfo.txtQueryContent1 = txtQueryContent1.Text.Trim();
studentinfo.txtQueryContent2 = txtQueryContent2.Text.Trim();
studentinfo.txtQueryContent3 = txtQueryContent3.Text.Trim();
//接收DAL层的数据
DataTable table = fstudentinfodefend.SelectStudentInfo(studentinfo);
//组合两个控件都为空的情况
if (cmbGroupQuery1.Text.Trim ()=="" && cmbGroupQuery2.Text.Trim()=="")
{
//设置其他控件不可用
cmbName2.Enabled = false;
cmbName3.Enabled = false;
cmbOpert2.Enabled = false;
cmbOpert3.Enabled = false;
txtQueryContent2.Enabled = false;
txtQueryContent3.Enabled = false;
//判空
if (cmbName1.Text.Trim() == "" || cmbOpert1.Text.Trim() == "" || txtQueryContent1.Text.Trim() == "")
{
MessageBox.Show("信息不能为空,请将信息填写完整!");
return;
}
else
{
dataGridView.DataSource = table;
MessageBox.Show("查询成功!", "提示");
}
}
//组合控件2为空的情况
else if (cmbGroupQuery2 .Text .Trim ()=="")
{
//判空
DataTable tableGroup1 = fstudentinfodefend.SelectStuGroup1(studentinfo);
if (cmbName1.Text.Trim() == "" || cmbOpert1.Text.Trim() == "" || txtQueryContent1.Text.Trim() == ""|| cmbName2.Text.Trim() == "" || cmbOpert2.Text.Trim() == "" || txtQueryContent2.Text.Trim() == "")
{
MessageBox.Show("信息不能为空,请将信息填写完整!");
//设置其他控件不可用
cmbName3.Enabled = false;
cmbOpert3.Enabled = false;
txtQueryContent3.Enabled = false;
return;
}
else
{
dataGridView.DataSource = tableGroup1;
MessageBox.Show("查询成功!", "提示");
}
}
//组合控件都不为空的情况
else
{
DataTable tableGroup1And2 = fstudentinfodefend.SelectStuGroup1And2(studentinfo);
//判空
if (cmbName1.Text.Trim() == "" || cmbOpert1.Text.Trim() == "" || txtQueryContent1.Text.Trim() == "" || cmbName2.Text.Trim() == "" || cmbOpert2.Text.Trim() == "" || txtQueryContent2.Text.Trim() == ""||cmbName3.Text.Trim() == "" || cmbOpert3.Text.Trim() == "" || txtQueryContent3.Text.Trim() == "")
{
MessageBox.Show("信息不能为空,请将信息填写完整!");
return;
}
else
{
dataGridView.DataSource = tableGroup1And2;
MessageBox.Show("查询成功!", "提示");
}
}
}
private void frmStudentInfoDefend_Load(object sender, EventArgs e)
{
//查询条件
cmbName1.Items.Add("卡号");
cmbName1.Items.Add("学号");
cmbName1.Items.Add("姓名");
cmbName1.Items.Add("性别");
cmbName1.Items.Add("专业");
cmbName1.Items.Add("年级");
cmbName1.Items.Add("班级");
cmbName2.Items.Add("卡号");
cmbName2.Items.Add("学号");
cmbName2.Items.Add("姓名");
cmbName2.Items.Add("性别");
cmbName2.Items.Add("专业");
cmbName2.Items.Add("年级");
cmbName2.Items.Add("班级");
cmbName3.Items.Add("卡号");
cmbName3.Items.Add("学号");
cmbName3.Items.Add("姓名");
cmbName3.Items.Add("性别");
cmbName3.Items.Add("专业");
cmbName3.Items.Add("年级");
cmbName3.Items.Add("班级");
//操作符
cmbOpert1.Items.Add(">");
cmbOpert1.Items.Add("<");
cmbOpert1.Items.Add("=");
cmbOpert1.Items.Add("<>");
cmbOpert2.Items.Add(">");
cmbOpert2.Items.Add("<");
cmbOpert2.Items.Add("=");
cmbOpert2.Items.Add("<>");
cmbOpert3.Items.Add(">");
cmbOpert3.Items.Add("<");
cmbOpert3.Items.Add("=");
cmbOpert3.Items.Add("<>");
//组合关系
cmbGroupQuery1.Items.Add("与");
cmbGroupQuery1.Items.Add("或");
cmbGroupQuery2.Items.Add("与");
cmbGroupQuery2.Items.Add("或");
}
private void cmdClear_Click(object sender, EventArgs e)
{
//清空控件
cmbName1.Text= "";
cmbName2.Text = "";
cmbName3.Text = "";
cmbOpert1.Text = "";
cmbOpert2.Text = "";
cmbOpert3.Text = "";
txtQueryContent1.Text = "";
txtQueryContent2.Text = "";
txtQueryContent3.Text = "";
cmbGroupQuery1.Text = "";
cmbGroupQuery2.Text = "";
}
}
}
BLL層
オブジェクト指向の考え方は、この層は非常に重要です。この層のロジックの多くので、部屋はあなたに私の復興を表示するために、今日のオブジェクト指向の私の考えではありませんので。だから、この層のコードは、彼の本来の意味を失っています。したがって、ここでの層のコードを示してもいません。
DAL層
私はオブジェクト指向の考え方でコードを記述する必要はありませんので、必然的に他の人の完全に異なると私のDALのDAL層につながります。オブジェクト指向のクエリ方法は、層は、データベース処理手順に格納されています。それはずっと簡単になります。私のDALはまだ私に多くの労力を要します。しかし、同じオブジェクト指向の考え方を達成することができ達しました。アイデアは、コード自体よりも重要です。
namespace DAL
{
public class StudentInfoDefendDAO:IStudentInfoDefend
{
SqlHelper sqlhelper = new SqlHelper();
public DataTable SelectStudentInfo(StudentInfo studentinfo)
{
string name =studentinfo.cmbName1;
string fuhao = studentinfo.cmbOpert1;
string text= studentinfo.txtQueryContent1;
string addtext = name + fuhao + text;
string sql = @"select * from [student_Info] where "+addtext+" ";
DataTable table = sqlhelper.ExecuteQuery(sql, CommandType.Text);
return table;
}
public DataTable SelectStuGroup1(StudentInfo studentinfo)
{
string nameGroup1 = studentinfo.cmbName1;
string fuhaoGroup1 = studentinfo.cmbOpert1;
string textGroup1 = studentinfo.txtQueryContent1;
string addtextGroup1 = nameGroup1 + fuhaoGroup1 + textGroup1;
string sql = @"select * from [student_Info] where " + addtextGroup1 + " ";
DataTable tableGroup1 = sqlhelper.ExecuteQuery(sql, CommandType.Text);
return tableGroup1;
}
public DataTable SelectStuGroup1And2(StudentInfo studentinfo)
{
string nameGroup1And2 = studentinfo.cmbName1;
string fuhaoGroup1And2 = studentinfo.cmbOpert1;
string textGroup1And2 = studentinfo.txtQueryContent1;
string addtextGroup1And2 = nameGroup1And2 + fuhaoGroup1And2 + textGroup1And2;
string sql = @"select * from [student_Info] where " + addtextGroup1And2 + " ";
DataTable tableGroup1And2 = sqlhelper.ExecuteQuery(sql, CommandType.Text);
return tableGroup1And2;
}
}
}
概要 |
もちろん、私はまた、私は深く感謝して、私の兄の欠点を指摘したいと思います。