三层架构第二课
三層架構第二課
數據表格的Cell_Click功能
txtDeptId.Enabled = false;btnUpdate.Enabled = true;btnAdd.Enabled = false;btnDel.Enabled = true;單元格的行選中屬性:FullRowSelect
//單擊的時候,選中項改變事件
private void dataGridView1_SelectionChanged(object sender, EventArgs e){txtDeptId.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();txtDeptName.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();}一.編輯功能
1.1 UI端
//填進去的值是最新的值dept = new Dept();dept.DeptId = txtDeptId.Text.Trim();dept.DeptName = txtDeptName.Text.Trim();bool result=deptService.updateDept(dept);if (result)MessageBox.Show("更新數據成功");elseMessageBox.Show("更新數據失敗");//調用查詢方法;dataGridView1.DataSource = deptService.refreshData();1.2
二.刪除功能
2.1 UI端
DialogResult dialog = MessageBox.Show("您確認是否刪除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);if (dialog == DialogResult.Yes) {dept = new Dept();dept.DeptId = txtDeptId.Text.Trim();bool result = deptService.delDept(dept);if (result)MessageBox.Show("刪除數據成功");elseMessageBox.Show("刪除數據失敗");}else{}//調用查詢方法;dataGridView1.DataSource = deptService.refreshData();三.復雜查詢
3.0 通用查詢
String url = "server=.;database=MyDb;uid=sa;pwd=123456";//1.鏈接對象;SqlConnection conn = new SqlConnection(url);conn.Open();//2.SqlCommandSqlCommand cmd = conn.CreateCommand();cmd.CommandText = sql;if (parameters != null){//繼續添加參數;for (int i = 0; i < parameters.Count; i++){cmd.Parameters.Add(parameters[i]);}}SqlDataAdapter da = new SqlDataAdapter(cmd);DataTable dt=new DataTable();da.Fill(dt);return dt;3.1 刷新查詢
public DataTable refreshData() {String sql = "select deptId 部門編號,deptName 部門名稱 from dept";return DBHelper.query(sql,null);}3.2 學生表的復雜查詢
3.2.1 UI層
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Model; using BLL;namespace UI {public partial class frmStu : Form{//定義條件String currContext = "";StudentService stuService = new StudentService();public frmStu(){InitializeComponent();}private void frmStu_Load(object sender, EventArgs e){//向條件下拉框,增加值;cmbSeaField.Items.Add("學號");cmbSeaField.Items.Add("姓名");cmbSeaField.Items.Add("年齡");cmbSeaField.Items.Add("性別");cmbSeaField.Items.Add("系部");}/// <summary>/// 查詢按鈕/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnSearch_Click(object sender, EventArgs e){String searchField = "";if (cmbSeaField.SelectedItem==null) {MessageBox.Show("請選擇查詢項目");return;}//根據下拉框進行判斷switch (cmbSeaField.SelectedItem.ToString()) { case "學號":searchField = "stuId";break;case "姓名":searchField = "stuName"; break;case "年齡":searchField = "age"; break;case "性別":searchField = "gender"; break;case "系部":searchField = "deptName"; break;}//條件判斷,盡量用equalsif (cmbOp.SelectedItem.ToString() != "類似于")currContext = searchField + cmbOp.SelectedItem.ToString() + txtSeaContext.Text ;elsecurrContext = searchField + " like '%" + txtSeaContext.Text + "%'";//調用查詢bindGridView();}public void bindGridView() { dgvStuList.DataSource=stuService.queryByCondition(currContext);}/// <summary>/// 選擇框的更改事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void cmbSeaField_SelectedIndexChanged(object sender, EventArgs e){//當選項發生更改時,年輕是等值,其他是比較;cmbOp.Items.Clear();if (cmbSeaField.SelectedItem.ToString() == "年齡"){cmbOp.Items.Add(">");cmbOp.Items.Add(">=");cmbOp.Items.Add("=");cmbOp.Items.Add("<");cmbOp.Items.Add("<=");}else {cmbOp.Items.Add("=");cmbOp.Items.Add("類似于");}}} }3.2.2 BLL層
public class StudentService{StudentDao stuDao = new StudentDao();public DataTable queryByCondition(String context){return stuDao.queryByCondition(context);}}3.2.3 DAL層
這層代碼需要修改之
public DataTable queryByCondition(String context){String url = "server=.;database=MyDb;uid=sa;pwd=123456";//1.鏈接對象;SqlConnection conn = new SqlConnection(url);conn.Open();//2.SqlCommandSqlCommand cmd = conn.CreateCommand();String sql = "select * from student s left join dept d on s.deptId=d.deptId";if (context != "") {sql += " where " + context;}cmd.CommandText = sql;SqlDataAdapter da = new SqlDataAdapter(cmd);DataTable dt = new DataTable();da.Fill(dt);return dt;}3.2.4 界面演示
總結
 
                            
                        - 上一篇: Asp.Net就业课之三验证控件
- 下一篇: C#工厂方法模式 -抽象工厂模式
