已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫課程設(shè)計報告 房屋中介管理系統(tǒng) 班級: 姓名: 學(xué)號: 指導(dǎo)教師: 完成日期:房屋中介管理系統(tǒng) - 2 - 數(shù)據(jù)庫課程設(shè)計評分表 班級 姓名 指導(dǎo)教師 題目: 房屋中介管理系統(tǒng) 評分標準 評分標準 分數(shù)權(quán) 重 評分的依據(jù) 得分 A C 工作態(tài)度 10 態(tài)度端正, 能主動 認真 完成各項內(nèi)容 ,不遲到早退,出勤好。 能夠完成各環(huán)節(jié)基本工作,出勤較好。 獨立解決問題的能力 10 能獨立完成數(shù)據(jù)庫課程設(shè)計項目的各項任務(wù),熟悉項目的整體架構(gòu);具有獨立分析、解決問題能力,具有獨立調(diào)試程序與測試程 序的能力,程序結(jié)構(gòu)清晰,邏輯嚴謹,功能完善。 有一定的分析、解決問題能力。能夠在老師指導(dǎo)下完成任務(wù)的編碼與調(diào)試工作,程序功能較完善。 程序完成及運行情況 20 完成率 100%,程序運行正確。 完成率不足 70%。 課程設(shè)計報告 30 格式規(guī)范,層次清晰,設(shè)計思想明確,解決問題方法合理,體會深刻。 格式較規(guī)范,設(shè)計思想基本明確,解決問題方法較合理。 答辨問題回答 30 能準確回答老師提出的問題,并充分理解數(shù)據(jù)庫開發(fā)技術(shù),程序邏輯清晰。 能基本準確回答老師提出的問題 總分 指導(dǎo)教師(簽字): 注:介于 A 和 C 之間為 B 級,低于 C 為 D 級和 E 級。按各項指標打分后,總分90 100 為優(yōu), 80 89為良, 70 79 為中, 60 69為及格, 60 分以下為不及格。 數(shù)據(jù)庫課程設(shè)計 目錄 第 1 章 需求分析 . 1 1.1 開發(fā)背景 . 1 1.2 需求分析 . 1 第 2 章 系統(tǒng)設(shè)計 . 2 2.1 項目規(guī)劃 . 2 2.2 系統(tǒng)業(yè)務(wù)流程分析 . 2 2.3 系統(tǒng)業(yè)務(wù)流程分 . 3 2.4 系統(tǒng) E-R 圖 . 4 2.5 開發(fā)及運行環(huán)境 . 6 第 3 章 數(shù)據(jù)庫設(shè)計 . 7 3.1 數(shù)據(jù)表概要說明 . 7 3.2 主數(shù)據(jù)表的結(jié)構(gòu) . 7 第 4 章 系統(tǒng)模塊代碼設(shè)計 . 14 4.1 系統(tǒng)登錄模塊代碼 . 14 4.2 用戶信息管理登錄模塊設(shè)計代碼 . 15 4.3 房源信息設(shè)置模塊設(shè)計代碼 . 16 4.4 房源信息查詢模塊設(shè)計代碼 . 20 4.5 房源狀態(tài)查詢模塊設(shè)計 . 23 4.6 員工信息設(shè)置模塊設(shè)計代碼 . 26 第 5 章 疑難問題解析 . 27 5.1 通過觸發(fā)器對視圖進行添加、修改和刪除操作 . 27 5.2 結(jié)束數(shù)據(jù)庫連接進程完成數(shù)據(jù)庫還原 . 27 第 6 章 課程設(shè)計小結(jié)和心得 . 29 6.1 小結(jié) . 29 6.2 心得 . 29 第 7 章 源代碼 . 30 7.1 系統(tǒng)登錄模塊設(shè)計代碼 . 30 7.2 用戶信息管理登錄模塊設(shè) 計代碼 . 31 7.3 房源信息設(shè)置模塊設(shè)計代碼 . 33 7.4 房源信息查詢模塊設(shè)計代碼 . 37 7.5 房源狀態(tài)查詢模塊設(shè)計 . 41 7.6 員工信息設(shè)置模塊設(shè)計代碼 . 44 數(shù)據(jù)庫課程設(shè)計 - 1 - 第 1 章 需求分析 1.1 開發(fā)背景 房屋中介行業(yè)是房地產(chǎn)業(yè)的重要組成部分, 其在 房地產(chǎn)業(yè)經(jīng)濟運作的全過程之中起著至關(guān)重要的作用,為房地產(chǎn)業(yè)的生產(chǎn)、流通和消費提供了多元化的服務(wù)。房屋中介行業(yè)作為一個管理房屋信息的機構(gòu),其對信息的管理應(yīng)該準確無誤。利用所學(xué)的軟件工程設(shè)計思想、數(shù) 據(jù)庫等知識設(shè)計一個房屋中介管理系統(tǒng)的軟件對于提高該中介機構(gòu)的工作效率變得尤為重要。 1.2 需求分析 通過實際調(diào)查,要求房屋中介管理系統(tǒng)應(yīng)該具有一下功能: ( 1)由于操作人員的計算機知識普遍偏低,因此要求系統(tǒng)具有良好的人機界面; ( 2)如果系統(tǒng)的使用對象較多,則要求有較好的權(quán)限管理; ( 3)方便的數(shù)據(jù)查詢,支持自定義條件查詢; ( 4)自動匹配房源和求房意向信息; ( 5)使用垃圾信息處理機制釋放空間; ( 6)在相應(yīng)的權(quán)限下,刪除數(shù)據(jù)方便簡單、數(shù)據(jù)穩(wěn)定性強; ( 7) 數(shù)據(jù)計算自動完成,盡量減少人工干預(yù)。 房屋中介管理系統(tǒng) - 2 - 第 2 章 系統(tǒng)設(shè)計 2.1 項目規(guī)劃 房屋中介管理系統(tǒng)在出租者和求租者之間起到了橋梁的作用,是一款非常實用的軟件,它主要由用戶信息管理、出租信息管理、求租信息管理、房源管理、常用工具和系統(tǒng)管理等模塊組成,具體規(guī)劃如下。 ( 1)用戶信息管理模塊 該模塊主要包括求租人員信息 設(shè)置、出租人員信息設(shè)置、人員信息控制等功能。 ( 2)求租管理模塊 該模塊主要包括房源查詢設(shè)置、房源狀態(tài)瀏覽、求租意向設(shè)置等功能。 ( 3) 員工管理模塊 該模塊主要包括錄入員工信息、員工信息控制等功能。 ( 4) 出租管理模塊 該模塊主要 包括房型設(shè)置、樓層設(shè)置、幢 /座設(shè)置、裝修程度設(shè)置、朝向設(shè)置、用途設(shè)置等功能。 (5) 交費管理 該模塊主要包括收費設(shè)置、收費記錄等功能。 (6) 業(yè)務(wù)統(tǒng)計 該模塊主要包括成交業(yè)務(wù)量統(tǒng)計等功能。 (7) 窗體布局 該模塊主要包括層疊排列、水平排列、垂直平鋪等功能。 (8) 常用工具 該模塊主要包括記事本、計算器、 Word、 Excel等功能。 (9) 系統(tǒng)管理 該模塊主要包括口令設(shè)置、退出系統(tǒng)、數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)、清理無效信息等功能。 2.2 系統(tǒng)業(yè)務(wù)流程分析 房屋中介管理系統(tǒng)是業(yè)務(wù)流程如圖 2.1 所示 數(shù)據(jù)庫課程設(shè)計 - 3 - 圖 2.1 房屋中介管理系統(tǒng)是業(yè)務(wù)流程 2.3 系統(tǒng)業(yè)務(wù)流程分 房屋中介管理系統(tǒng)功能結(jié)構(gòu)圖如圖 2.2所示 是否登錄 收集客戶信息 身份驗證 管理員工 是否找到房源 客戶劃分 填寫意向 是否與房源相符 聯(lián)系雙方交款 錄入房源 是否與房源 意愿相符 結(jié)束 結(jié)束 是 員工 經(jīng)理 否 是 否 求租人 出租人 是 登錄 系統(tǒng) 否 否 是 房屋中介管理系統(tǒng) - 4 - 圖 2.2 房屋中介管理系統(tǒng)功能結(jié)構(gòu)圖 2.4 系統(tǒng) E-R 圖 ( 1)出租房屋信息 E-R圖 如圖 2.3 所示 房屋中介管理系統(tǒng) 用戶信息管理 求組管理 員工信息 出租管理 窗體布局 常用工具 系統(tǒng)管 理 房源查詢設(shè)置 房源狀態(tài)瀏覽 求租意向設(shè)置 房源查詢設(shè)置 房源狀態(tài)瀏覽 求租意向設(shè)置 錄入員工信息 員工信息控制 層疊平鋪 水平平鋪 垂直平鋪 記事本 Word 計算器 民族設(shè)置 學(xué)歷設(shè)置 房屋設(shè)置 樓層設(shè)置 裝修設(shè)置 幢座設(shè)置 朝向設(shè)置 用途設(shè)置 口令設(shè)置 退出系統(tǒng) 數(shù)據(jù)庫備份 數(shù)據(jù)庫還原 清理無效信息 Excel 數(shù)據(jù)庫課程設(shè)計 - 5 - 圖 2.3 出租房屋信息 E-R 圖 ( 2) 求購人信息 E-R 圖 如圖 2.4 所示 圖 2.4 求購人信息 E-R 圖 求租人信息 客戶姓名 聯(lián)系方式 房屋種類 建筑面積 裝修情況 戶型 出租房屋信息 客戶姓名 聯(lián)系方式 每月價格 房屋種類 建筑面積 裝修情況 房型 房屋地址 房屋情況 房屋中介管理系統(tǒng) - 6 - 2.5 開發(fā)及運行環(huán)境 本系統(tǒng)開發(fā)平臺及運行環(huán)境如下 1) 系統(tǒng)開發(fā)平臺: Microsoft Visual Studio 2008. 2) 系統(tǒng)開發(fā)語言: C#。 3) 數(shù)據(jù)庫管理系統(tǒng)軟件: SQL Server 2005。 4) 運行平臺: Windows XP。 5) 運行環(huán)境: Microsoft.NET Framework 數(shù)據(jù)庫課程設(shè)計 - 7 - 第 3 章 數(shù)據(jù)庫設(shè)計 本系統(tǒng)采用 SQL Server 2005 數(shù)據(jù)庫,名稱為 db-showHouse,其中包含 15 張數(shù)據(jù)表。下面分別給出數(shù)據(jù)表概要說明、主要數(shù)據(jù)表結(jié)構(gòu)。 3.1 數(shù)據(jù)表概要說明 數(shù)據(jù)表樹形結(jié)構(gòu)圖包括系統(tǒng)所有數(shù)據(jù)表 如圖 3.1 所示 圖 3.1 數(shù)據(jù)表樹形結(jié)構(gòu)圖包括系統(tǒng)所有數(shù)據(jù)表 3.2 主數(shù)據(jù)表的結(jié)構(gòu) (1)tb_employee(員工信息表 ) 表 tb_employee 用于保存員工的基本信息,該表的結(jié)構(gòu)如圖 3.1 所示。 房屋中介管理系統(tǒng) - 8 - 圖 3.1 員工信息表 (2)tb_favor(朝向 信息表 ) 表 tb_favor 用于設(shè)置房源的朝向信息,該表的結(jié)構(gòu)如圖 3.2 所示。 圖 3.2 朝向信息表 (3)tb_fitment(裝修 信息表 ) 表 tb_fitment 用于設(shè)置房源裝修信息,該表的結(jié)構(gòu)如圖 3.3 所 示。 圖 3.3 裝修信息表 (4)tb_floor(樓層 信息表 ) 表 tb_floor 用于設(shè)置房源樓層信息,該表的結(jié)構(gòu)如圖 3.4 所示。 數(shù)據(jù)庫課程設(shè)計 - 9 - 圖 3.4 樓層信息表 (5)tb_gov(民 族 信息表 ) 表 tb_gov 用于保存員工的民族信息,該表的結(jié)構(gòu)如圖 3.5 所示。 圖 3.5 民族信息表 (6)tb_log(日志 信息表 ) 表 tb_log 用于 保存操作者 使用該系統(tǒng)的日志記錄 ,該表的 結(jié)構(gòu)如圖 3.6 所示。 圖 3.6 日志信息表 (7)tb_house(房屋 信息表 ) 表 tb_house 用于保存房屋信息,該表的結(jié)構(gòu)如圖 3.7 所示。 房屋中介管理系統(tǒng) - 10 - 圖 3.7 房源信息表 (8)tb_intent(求租意向 表 ) 表 tb_intent 用于保存求租人對房源的要求信息,該表的結(jié)構(gòu)如圖 3.8 所示。 圖 3.8 意向信息表 數(shù)據(jù)庫課程設(shè)計 - 11 - (9)tb_login(登錄 信息表 ) 表 tb_login 用于用戶進入系統(tǒng)時進行核對,該表的結(jié)構(gòu)如圖 3.9 所示。 圖 3.9 登錄信息表 (10)tb_MoneyAndInfo(收費 信息表 ) 表 tb_ MoneyAndInfo 用于保存收費信息,該表的結(jié)構(gòu)如圖 3.10 所示。 圖 3.10 收費信息 表 (11)tb_mothed(用途 信息表 ) 表 tb_mothed 用于保存房源的用途信息,該表的結(jié)構(gòu)如圖 3.11 所示 房屋中介管理系統(tǒng) - 12 - 圖 3.11 用途信息表 (12)tb_seat(幢座 信息表 ) 表 tb_seat 用于保存房源幢座信息,該表的結(jié)構(gòu)如圖 3.12 所示。 圖 3.12 幢座信息表 (13)tb_StudyDegree(學(xué)歷 信息表 ) 表 tb_ StudyDegree 用于設(shè)置員工的學(xué)歷,該表的結(jié)構(gòu)如圖 3.13 所示 圖 3.13 學(xué)歷信息表 (14)tb_type(房型 信息表 ) 表 tb_type 用于保存房源房型信息,該表的結(jié)構(gòu)如圖 3.14 所示。 圖 3.14 房型信息表 數(shù)據(jù)庫課程設(shè)計 - 13 - (15)tb_user(客戶 信息表 ) 表 tb_user 用于保存客戶信息,該表的結(jié)構(gòu)如圖 3.15 所示 圖 3.15 客戶信息表 房屋中介管理系統(tǒng) - 14 - 第 4 章 系統(tǒng)模塊代碼設(shè)計 4.1 系統(tǒng)登錄模塊代碼 單擊“登錄”按鈕,調(diào)用登錄信息表的方法類,判斷用戶輸入的用戶名和密碼是否正確,如果正確,則登錄房屋中介管理系統(tǒng),同時分配該用戶相應(yīng)的權(quán)限,否則彈出“密碼有誤, 3次后將自動關(guān)閉 ”的提示信息。“登錄”按鈕的 Click 事件代碼如下: private void btnLogin_Click(object sender, EventArgs e) #region/用戶與密碼是否正確不正確給三次機會然后關(guān)閉 cl.LName=this.cobName.Text; cl.LPwd=this.txtPwd.Text.Trim().ToString(); string power=cm.select_table(cl); if (power != none) /調(diào)一個方法如果成功進入后臺否則記到 登陸日制中 frmMain fm = new frmMain(); this.Hide(); fm.M_str_Power = this.cobName.Text + + power; fm.Show(); else if(this.txtPwd.Text= & this.cobName.Text=) /當所有信息都沒有時這是一個入口 frmMain fm = new frmMain(); this.Hide(); fm.Show(); else if (ErrorNum = cl.LName) Num += 1; if (Num = 3) this.Close(); else ErrorNum = cl.LName; Num += 1; MessageBox.Show(密碼有誤 ,三次后將自動關(guān)閉 ,這是第 +Num+次 ); this.txtPwd.Text = string.Empty; this.txtPwd.Focus(); 數(shù)據(jù)庫課程設(shè)計 - 15 - 4.2 用戶信息管理登錄模塊設(shè)計代碼 在 frmPeopleList窗體的 load事件中,通過調(diào)用自定義 ListInfo方法對 DataGridView控件進行數(shù)據(jù)綁定,顯示所有系統(tǒng)用戶信息。 frmPeopleList窗體的 load事 件關(guān)鍵代碼如下: private void frmPeopleList_Load(object sender, EventArgs e) sbSql.Append(select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User); ListInfo(sbSql.ToString(); UnAble(); private void tp_cancel_Click(object sender, EventArgs e) this.Close(); 當用戶在單擊“出租人”選項卡或“求租人”選項卡時,在相應(yīng)的選項卡頁中顯示客戶信息,實現(xiàn)代碼如下: private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) if (this.tabControl1.SelectedTab.Text = 出租人 ) sbWhere.Append( where user_type=lend); ListInfo(sbSql.ToString() + sbWhere.ToString(); sbWhere.Remove(0, sbWhere.Length); else if (this.tabControl1.SelectedTab.Text = 求租人 ) sbWhere.Append( where user_type=want ); ListInfo(sbSql.ToString() + sbWhere.ToString(); sbWhere.Remove(0, sbWhere.Length); 單擊 ListView控件中的任一單元格,將對應(yīng)的詳細客戶信息顯示在相應(yīng)選項卡的文本框中,實現(xiàn)代碼如下: private void listView1_Click(object sender, EventArgs e) string strID =this.listView1.SelectedItems0.Text.ToString(); string sql = select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User where user_ids= + strID + ; SqlCommand cmd=new SqlCommand(sql,con.conn); con.closeCon(); cmd.Connection.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (strID.Substring(0, 4) = lend) 房屋中介管理系統(tǒng) - 16 - this.tabControl1.SelectTab(0); while (dr.Read() this.textBox1.Text = dr0.ToString(); this.textBox2.Text = dr1.ToString(); this.textBox3.Text = dr2.ToString(); this.textBox4.Text = dr3.ToString(); this.textBox5.Text = dr4.ToString(); else this.tabControl1.SelectTab(1); while (dr.Read() this.textBox10.Text = dr0.ToString(); this.textBox9.Text = dr1.ToString(); this.textBox8.Text = dr2.ToString(); this.textBox7.Text = dr3.ToString(); this.textBox6.Text = dr4.ToString(); dr.Close(); con.closeCon(); tb_update.Enabled = true; 4.3 房源信息設(shè)置模塊設(shè)計代碼 在 frmHouse窗體的 Load事件中,通過 M_str_Show變量判斷本次調(diào)用窗體的目地。如果是瀏覽或修改信息,則將相應(yīng)的信息顯示到控件上,如果是添加信息,則將基本表的信息綁定到 ComboBox控件上。 frmHouse窗體的 Load事件中實現(xiàn)代碼如下: private void frmHouse_Load(object sender, EventArgs e) string strHouseState = string.Empty; con.ConDatabase(); flushFaove(); flushfitment(); flushfloor(); flushmothed(); flushseat(); flushtype(); if (M_str_Show = String.Empty) try SqlCommand cmd = new SqlCommand(select Max(house_ID) from tb_house, con.conn); cmd.Connection.Open(); 數(shù)據(jù)庫課程設(shè)計 - 17 - strResult = cmd.ExecuteScalar().ToString(); con.closeCon(); if (strResult = ) strResult = hou1001; else string strTemp = strResult.Substring(3); strResult = hou + Convert.ToString(Int32.Parse(strTemp) + 1); this.lblHouseID.Text = 您的房屋編號為: + strResult; catch (Exception ey) con.closeCon(); MessageBox.Show(ey.Message); else this.button8.Visible = false; this.butOK.Visible = false; Visable(); SqlCommand cmd = new SqlCommand(select * from tb_house where house_ID= + M_str_Show + , con.conn); con.conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) while (dr.Read() lblHouseID.Text = dr0.ToString(); this.txtName.Text = dr1.ToString(); this.picHouse.ImageLocation = dr8.ToString(); txtPrice.Text = dr9.ToString(); this.nudYear.Value = Convert.ToDecimal(dr11.ToString(); this.txtArea.Text = dr12.ToString(); this.ttbRemark.Text = dr13.ToString(); strHouseState = dr4.ToString(); this.cboXing.SelectedValue = dr2.ToString(); this.cobDong.SelectedValue = dr3.ToString(); this.cboFavoe.SelectedValue = dr6.ToString(); this.cobZhuang.SelectedValue = dr5.ToString(); this.cobUser.SelectedValue = dr7.ToString(); this.cobFlood.SelectedValue = dr10.ToString(); con.closeCon(); if (strHouseState = none) /什么時候出顯 button1.Visible = true; button2.Visible = true; 房屋中介管理系統(tǒng) - 18 - private void flushFaove() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_favor, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cboFavoe.DataSource = dt.DefaultView; cboFavoe.DisplayMember = favor_name; cboFavoe.ValueMember = house_favorID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushfitment() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_fitment, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobZhuang.DataSource = dt.DefaultView; cobZhuang.DisplayMember = fitment_name; cobZhuang.ValueMember = house_fitmentID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushfloor() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_floor, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobFlood.DataSource = dt.DefaultView; cobFlood.DisplayMember = floor_name; cobFlood.ValueMember = house_floorID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushmothed() con.ConDatabase(); 數(shù)據(jù)庫課程設(shè)計 - 19 - try SqlDataAdapter da = new SqlDataAdapter(select * from tb_mothed, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobUser.DataSource = dt.DefaultView; cobUser.DisplayMember = mothed_name; cobUser.ValueMember = house_mothedID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushseat() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_seat, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobDong.DataSource = dt.DefaultView; cobDong.DisplayMember = seat_name; cobDong.ValueMember = house_seatID; catch (Exception ey) MessageBox.Show(ey.Message); 單擊“ ”按鈕,將更改后的信息立即在界面上顯示 , 實現(xiàn)代碼如下: private void flushtype() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_type, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cboXing.DataSource = dt.DefaultView; cboXing.DisplayMember = type_names; cboXing.ValueMember = huose_typeID; catch (Exception ey) MessageBox.Show(ey.Message); 房屋中介管理系統(tǒng) - 20 - 4.4 房源信息查詢模塊設(shè)計代碼 frmSelect 窗體的 load 事件中, DataGridView 控件進行數(shù)據(jù)綁定,以顯示房源相關(guān)信息。實現(xiàn)代碼如下: private void frmSelect_Load(object sender,EventArgs e) try con.ConDatabase(); SplDataAdapter da=new SplDataAdapter(“ select*from view_house” ,con.conn); DataTable dt=new DataTable(); da.Fill(dt); this.dataGridView1.DataSource=dt.DefaultView; catch(Exception ey) MessageBox.Show(ey.Message); 單擊“查詢”按鈕,對 strMidle 變量進行相關(guān)處理,動態(tài)生成 SQL 語句,代碼如下: private void button1_Click(object sender, EventArgs e) strSql.Append(select * from view_house where ); if (strMidle.IndexOf(house_companyName)!=-1) if (strWhere != string.Empty) strWhere += and + 物業(yè)名稱 like % + this.txtName.Text.Trim().ToString() + % ; else strWhere += 物業(yè)名稱 like % + this.txtName.Text.Trim().ToString() + %; strMidle=strMidle.Replace(house_companyName, #); if (strMidle.IndexOf(huose_typeID)!= -1) if (strWhere != string.Empty) strWhere += and + 類型 = + this.cboXing.Text.ToString() + ; else strWhere += 類型 = + this.cboXing.Text.ToString() + ; strMidle=strMidle.Replace(huose_typeID, #); 數(shù)據(jù)庫課程設(shè)計 - 21 - if (strMidle.IndexOf(house_seatID) != -1) if (strWhere != string.Empty) strWhere += and + 幢座 = + this.cobDong.Text.ToString() + ; else strWhere += 幢座 = + this.cobDong.Text.ToString() + ; strMidle=strMidle.Replace(house_seatID, #); if (strMidle.IndexOf(house_favorID) != -1) if (strWhere != string.Empty) strWhere += and + 朝向 = + this.cboFavoe.Text.ToString() + ; else strWhere += 朝向 = + this.cboFavoe.Text.ToString() + ; strMidle=strMidle.Replace(house_favorID, #); if (strMidle.IndexOf(house_fitmentID) != -1) if (strWhere != string.Empty) strWhere += and + 裝修 = + this.cobZhuang.Text.ToString() + ; else strWhere += 裝修 = + this.cobZhuang.Text.ToString() + ; strMidle = strMidle.Replace(house_fitmentID, #); if (strMidle.IndexOf(house_mothedID) != -1) if (strWhere != string.Empty) strWhere += and + 用途 = + this.cobUser.Text.ToString() + ; else strWhere += 用途 = + this.cobUser.Text.ToString() + ; strMidle = strMidle.Replace(house_mothedID, #); /tbho.house_mothedID=tbmo.house_mothedID and if (strMidle.IndexOf(house_floorID) != -1) 房屋中介管理系統(tǒng) - 22 - if (strWhere != string.Empty) strWhere += and + 樓層 = + this.cobFlood.Text.ToString() + ; else strWhere += 樓層 = + this.cobFlood.Text.ToString() + ; strMidle = strMidle.Replace(house_floorID, #); if (strMidle.IndexOf(house_buildYear) != -1) if (strWhere != string.Empty) strWhere += and + 建筑年限 = + this.nudYear.Text.Trim().ToString() + ; else strWhere += 建筑年限 = + this.nudYear.Text.Trim().ToString() + ; strMidle = strMidle.Replace(house_buildYear, #); if (strMidle.IndexOf(house_area) != -1) if (strWhere != string.Empty) strWhere += and + 建筑面積 like % + this.txtArea.Text.Trim().ToString() + % ; else strWhere += 建筑面積 like % + this.txtArea.Text.Trim().ToString() + %; strMidle = strMidle.Replace(house_area, #); if (strMidle.IndexOf(house_price) != -1) if (strWhere != string.Empty) strWhere += and + 價錢 like % + this.textBox1.Text.Trim().ToString() + % ; else strWhere += 價錢 like % + this.textBox1.Text.Trim().ToString() + %; strMidle = strMidle.Replace(house_price, #); if (strMidle.IndexOf(house_ID) != -1) 數(shù)據(jù)庫課程設(shè)計 - 23 - if (strWhere != string.Empty) strWhere += and + 房屋編號 like % + this.textBox2.Text.Trim().ToString() + %; else strWhere += 房屋編號 like % + this.textBox2.Text.Trim().ToString() + %; strMidle = strMidle.Replace(house_ID, #); try string strS = strWhere.Substring(strWhere.Length - 4); if (strS.Trim() = and) strWhere = strWhere.Substring(0, strWhere.Length - 4);/去掉尾 and catch return; strSql.Append(strWhere); string strK = strSql.ToString(); try SqlDataAdapter da = new SqlDataAdapter(strK, con.conn); DataTable dt = new DataTable(); da.Fill(dt); this.dataGridView1.DataSource = dt.DefaultView; ChuShiHua(); clearAll(); this.button1.Enabled = false; catch (Exception ey) MessageBox.Show(ey.Message); strWhere = string.Empty; strMidle = string.Empty; strSql.Remove(0,strSql.ToString().Length); button1.Enabled = false; this.textBox2.Text = ; this.textBox2.Enabled = false; checkBox11.Checked = false; 4.5 房源狀態(tài)查詢模塊設(shè)計 在 frmStateHouse 窗體的 Load 事件中,進行數(shù)據(jù)綁定,以顯示房源的相關(guān)信息。代碼如下: 房屋中介管理系統(tǒng) - 24 - private void frmStateHouse_Load(object sender, EventArgs e) this.button1.Enabled = false; ListInfo(strSql); con.ConDatabase(); 房屋中介管理 系統(tǒng)提供了房屋三種狀態(tài)的表現(xiàn)形式,即“閑置”,“預(yù)定”和“出租”,主要通過 ListInfo(string SQL)方法顯示房屋不同狀態(tài)的圖標。實現(xiàn)代碼如下: private void ListInfo(string SQL) con.ConDatabase(); this.listView1.Items.Clear(); SqlDataAdapter da = new SqlDataAdapter(SQL, con.conn); DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count 0) foreach (DataRow dr in dt.Rows) ListViewItem lv; if (dr11.ToString() = none) lv = new ListViewItem(dr0.ToString(), 0);/說明沒有要人要呢 else if (dr11.ToString() = remark) lv = new ListViewItem(dr0.ToString(), 1);/有人預(yù)訂了 else lv = new ListViewItem(dr0.ToString(), 2);/已租出去了 lv.SubItems.Add(dr1.ToString(); lv.SubItems.Add(dr2.ToString(); lv.SubItems.Add(dr5.ToString(); lv.SubItems.Add(dr6.ToString(); lv.SubItems.Add(dr7.ToString(); lv.SubItems.Add(dr8.ToString(); this.listView1.Items.Add(lv); else MessageBox.Show(查詢結(jié)果為空 ); this.listView1.Columns0.Width =120; 用戶可以通過輸入手機號碼預(yù)定或取消預(yù)定房源信息,在 txtPhone控件中按下回車鍵時,判斷用戶是否有權(quán)享受這兩項功能。實現(xiàn)代碼如下: 數(shù)據(jù)庫課程設(shè)計 - 25 - private void textBox1_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = 13) try /在用戶里去找這個人把房屋的編號放入這個的信息中去 ClsCon con = new ClsCon(); con.ConDatabase(); con.closeCon(); /查要租房的人不要把要出租的人也混進去 SqlCommand cmd = new SqlCommand(select Max(user_names+您的證件號為 :+user_cardid) from tb_User where user_phone= + textBox1.Text.Trim().ToString() + and user_typelend, con.conn); con.conn.Open(); string strRe = cmd.ExecuteScalar().ToString(); con.closeCon(); if (strRe != ) SqlCommand cmdl = new SqlCommand(select Max(house_ID) from tb_User where user_phone= + textBox1.Text.Trim().ToString() + , con.conn); cmdl.Connection.Open(); string strReS = cmdl.ExecuteScalar().ToString(); con.closeCon(); if (strReS = none) MessageBox.Show(strRe + 你有權(quán)預(yù)訂房源 ); this.button3.Enabled = true; this.button4.Enabled = false; else this.button3.Enabled = false; this.button4.Enabled = true; SendKeys.Send(Tab); else MessageBox.Show(電話號嗎不存在 ); this.textBox1.Select(0, this.textBox1.Text.Length); catch (Exception ey) MessageBox.Show(ey.Message); con.conn.Close(); 房屋中介管理系統(tǒng) - 26 - 4.6 員工信息設(shè)置模塊設(shè)計代碼 在 frmEmpleeyAll.cs窗體的 Load事件中。通過調(diào)用自定義 showAll方法對 dataGridView控件進行員工信息進行綁定。實現(xiàn)代碼如下: private void frmEmpleeyAll_Load(object sender, EventArgs e) showAll(); this.cobPower.Items.Add(員工 ); this.cobPower.Items.Add(經(jīng)理 ); 自定義 selectInfo方法,主要用來顯示員工詳細信息,代碼如下: private void selectInfo() try string str = this.dataGridView1.SelectedCells0.Value.ToString(); /再來個反添信息 SqlCommand cmd = new SqlCommand(select 姓名 ,電話 ,權(quán)限 ,工資 from view_empleey where 員工編號 = + str + , con.conn); cmd.Connection.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read() txtName.Text = dr0.ToString(); txtPhone.Text = dr1.ToString(); txtBasePay.Text = dr3.ToString(); if (dr2.ToString() = 0) cobPower.Text = 員工 ; else cobPower.Text = 經(jīng)理 ; dr.Close(); con.closeCon(); catch /have hide error 數(shù)據(jù)庫課程設(shè)計 - 27 - 第 5 章 疑難問題解析 5.1 通過觸發(fā)器對視圖進行添加、修改和刪除操作 當直接對視圖表進行操作時,如果沒有 instead of 觸發(fā)器是無法操作的,如果視圖是由多個表組成的,一一對每個表進行操作很麻煩,而且出錯的可能性很大。通過下面的代碼便可以輕松的解決, trig_update_OfEmployee 是一個 update 觸發(fā)器 ,針對由員工表和登錄表組成的視圖 view_employeey 進行添 加、修改和刪除操作。 trig_update_OfEmployee 觸發(fā)器代碼如下: create TRIGGER trig_update_OfEmployee ON view_employeey INSTEAD OF update AS BEGIN declareUName varchar(15) declarepower varchar(10) declarephone varchar(10) declaremoney numeric selectpower=權(quán)限, UName=姓名, phone=電話, money=工資 from inserted update tb_login set login_power=power where login_name=Uname update tb_employee set employee_basepay=money,employee_phone=phone where employee_name=Uname 5.2 結(jié)束數(shù)據(jù)庫連接進程完成數(shù)據(jù)庫還原 還原數(shù)據(jù)時,應(yīng)確保要還原的數(shù)據(jù)庫處于非連接狀態(tài),否則無法還原數(shù)據(jù)。為了達到要求,我們在這里 寫了一個過程 killspid。 存儲過程 killspid 通過游標找到相應(yīng)數(shù)據(jù)庫的編號,然后使用 kill 方法殺死數(shù)據(jù)庫連接過程。存儲過程在應(yīng)用過程中,須在前臺通過傳遞相應(yīng)的參數(shù)完成,有時可能出現(xiàn)服務(wù)器超時信息,則再次執(zhí)行后會成功。 在“還原”按鈕的 Click 事件中調(diào)用存儲過程,代碼如下: private bool RestoreBase(string serverName,string uID,string pWD,string dataBase,string bakPath) SqlConnection RestoreCon=new SqlConnection(“ server=” +severName+” ;uid=” uID+” ;pwd=” pWD” ;database=master” ); SqlCommand RestoreCmd=new SqlCommand (“ kill spid” RestoreCon); RestoreCmd.CommandType=CommandType.StoredProcedure; 房屋中介管理系統(tǒng) - 28 - RestoreCmd.Parameters.Add(“ dbname” ,SqlDbType.VarChar,50); RestoreCmd.Parameters“ dbname” .Value=” +dataBase+” ; Try RestoreCon.Open(); RestoreCmd.ExcuteNonQuery(); SqlCommand RestoreCmd1=new SqlCommand(); RestorwCmd1.CommandText=” RESTORE database” +dataBase+“ FROM DISK=” +bakPath+” ; RestorwCmd1.Connection=RestoreCon; RestorwCmd1.ExcuteNonQuery(); RestoreCon.Close(); Returned true; catch RestoreCon.Close(); Return false; 數(shù)據(jù)庫課程設(shè)計 - 29 - 第 6 章 課程設(shè)計小結(jié)和心得 6.1 小結(jié) 在運行程序的時候,首先要進行數(shù)據(jù)庫連接,否則無法運行,系統(tǒng)會提示錯誤信息。學(xué)會觸發(fā)器的使用非常有必要,我們可以運用觸發(fā)器解決一些問題,觸發(fā)器可以對視圖進行添加,修改和刪除操作。 6.2 心得 通過對此程序的設(shè)計和開發(fā),能讓我從中學(xué)到不少的知識,能充分的 體會到做開發(fā)首先要熟練地掌握編程的各種技能, 在這次課程設(shè)計中,我還懂得了程序開發(fā)的一些比較重要的步驟,比如需求分析、總體設(shè)計、數(shù)據(jù)庫設(shè)計 (含概念設(shè)計、邏輯設(shè)計、物理設(shè)計 )、程序模塊設(shè)計 (含功能需求、用戶界面設(shè)計、程序代碼設(shè)計與分析、運行結(jié)果 )、系統(tǒng)使用說明等??傊?,通過這次課程設(shè)計,我收獲頗豐,相信會為自己以后的學(xué)習和工作帶來很大的好處。最重要的還是激發(fā)了我編程的興趣和熱情,讓我從一個只懂理論變成了能做一些小型程序,讓我對編程更加熱愛了。整體地評價這次課程設(shè)計,我認為收獲很大,正如上面所說的那樣,通過課程設(shè) 計,既復(fù)習了以前的舊知識,又學(xué)到了一些新的知識;設(shè)計增強了我們用所學(xué)知識去解決具體問題的能力,進一步培養(yǎng)了我們獨立思考問題和解決問題的能力。 房屋中介管理系統(tǒng) - 30 - 第 7 章 源代碼 7.1 系統(tǒng)登錄模塊設(shè)計代碼 單擊“登錄”按鈕,調(diào)用登錄信息表的方法類,判 斷用戶輸入的用戶名和密碼是否正確,如果正確,則登錄房屋中介管理系統(tǒng),同時分配該用戶相應(yīng)的權(quán)限,否則彈出“密碼有誤, 3次后將自動關(guān)閉 ”的提示信息?!暗卿洝卑粹o的 Click 事件代碼如下: private void btnLogin_Click(object sender, EventArgs e) #region/用戶與密碼是否正確不正確給三次機會然后關(guān)閉 cl.LName=this.cobName.Text; cl.LPwd=this.txtPwd.Text.Trim().ToString(); string power=cm.select_table(cl); if (power != none) /調(diào)一個方法如果成功進入后臺否則記到登陸日制中 frmMain fm = new frmMain(); this.Hide(); fm.M_str_Power = this.cobName.Text + + power; fm.Show(); else if(this.txtPwd.Text= & this.cobName.Text=) /當所有信息都沒有時這是一個入口 frmMain fm = new frmMain(); this.Hide(); fm.Show(); else if (ErrorNum = cl.LName) Num += 1; if (Num = 3) this.Close(); 數(shù)據(jù)庫課程設(shè)計 - 31 - else ErrorNum = cl.LName; Num += 1; MessageBox.Show(密碼有誤 ,三次后將自動關(guān)閉 ,這是第 +Num+次 ); this.txtPwd.Text = string.Empty; this.txtPwd.Focus(); 7.2 用戶信息管理登錄模塊設(shè)計代碼 在 frmPeopleList窗體的 load事件中,通過調(diào)用自定義 ListInfo方法對 DataGridView控件進行數(shù)據(jù)綁定,顯示所有系統(tǒng)用戶信息。 frmPeopleList窗體的 load事件關(guān)鍵代碼如下: private void frmPeopleList_Load(object sender, EventArgs e) sbSql.Append(select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User); ListInfo(sbSql.ToString(); UnAble(); private void tp_cancel_Click(object sender, EventArgs e) this.Close(); 房屋中介管理系統(tǒng) - 32 - 當用戶在單擊“出租人”選項卡或“求租人” 選項卡時,在相應(yīng)的選項卡頁中顯示客戶信息,實現(xiàn)代碼如下: private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) if (this.tabControl1.SelectedTab.Text = 出租人 ) sbWhere.Append( where user_type=lend); ListInfo(sbSql.ToString() + sbWhere.ToString(); sbWhere.Remove(0, sbWhere.Length); else if (this.tabControl1.SelectedTab.Text = 求租人 ) sbWhere.Append( where user_type=want ); ListInfo(sbSql.ToString() + sbWhere.ToString(); sbWhere.Remove(0, sbWhere.Length); 單擊 ListView控件中的任一單元格,將對應(yīng)的詳細客戶信息顯示在相應(yīng)選項卡的文本框中,實現(xiàn)代碼如下: private void listView1_Click(object sender, EventArgs e) string strID =this.listView1.SelectedItems0.Text.ToString(); string sql = select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User where user_ids= + strID + ; SqlCommand cmd=new SqlCommand(sql,con.conn); con.closeCon(); cmd.Connection.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (strID.Substring(0, 4) = lend) this.tabControl1.SelectTab(0); while (dr.Read() this.textBox1.Text = dr0.ToString(); this.textBox2.Text = dr1.ToString(); this.textBox3.Text = dr2.ToString(); this.textBox4.Text = dr3.ToString(); this.textBox5.Text = dr4.ToString(); else this.tabControl1.SelectTab(1); while (dr.Read() this.textBox10.Text = dr0.ToString(); this.textBox9.Text = dr1.ToString(); this.textBox8.Text = dr2.ToString(); this.textBox7.Text = dr3.ToString(); 數(shù)據(jù)庫課程設(shè)計 - 33 - this.textBox6.Text = dr4.ToString(); dr.Close(); con.closeCon(); tb_update.Enabled = true; 7.3 房源信息設(shè)置模塊設(shè)計代碼 在 frmHouse窗體的 Load事件中,通過 M_str_Show變量判斷本次調(diào)用窗體的目地。如果是瀏覽或修改信息,則將相應(yīng)的信息顯示到控件上,如果是添加信息,則將基本表的信息綁定到 ComboBox控件上。 frmHouse窗體的 Load事件中實現(xiàn)代碼如下: private void frmHouse_Load(object sender, EventArgs e) string strHouseState = string.Empty; con.ConDatabase(); flushFaove(); flushfitment(); flushfloor(); flushmothed(); flushseat(); flushtype(); if (M_str_Show = String.Empty) try 房屋中介管理系統(tǒng) - 34 - SqlCommand cmd = new SqlCommand(select Max(house_ID) from tb_house, con.conn); cmd.Connection.Open(); strResult = cmd.ExecuteScalar().ToString(); con.closeCon(); if (strResult = ) strResult = hou1001; else string strTemp = strResult.Substring(3); strResult = hou + Convert.ToString(Int32.Parse(strTemp) + 1); this.lblHouseID.Text = 您的房屋編號 為: + strResult; catch (Exception ey) con.closeCon(); MessageBox.Show(ey.Message); else this.button8.Visible = false; this.butOK.Visible = false; Visable(); SqlCommand cmd = new SqlCommand(select * from tb_house where house_ID= + M_str_Show + , con.conn); con.conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) while (dr.Read() lblHouseID.Text = dr0.ToString(); this.txtName.Text = dr1.ToString(); this.picHouse.ImageLocation = dr8.ToString(); txtPrice.Text = dr9.ToString(); this.nudYear.Value = Convert.ToDecimal(dr11.ToString(); this.txtArea.Text = dr12.ToString(); this.ttbRemark.Text = dr13.ToString(); strHouseState = dr4.ToString(); this.cboXing.SelectedValue = dr2.ToString(); this.cobDong.SelectedValue = dr3.ToString(); this.cboFavoe.SelectedValue = dr6.ToString(); this.cobZhuang.SelectedValue = dr5.ToString(); this.cobUser.SelectedValue = dr7.ToString(); this.cobFlood.SelectedValue = dr10.ToString(); con.closeCon(); if (strHouseState = none) /什么時候出顯 button1.Visible = true; 數(shù)據(jù)庫課程設(shè)計 - 35 - button2.Visible = true; private void flushFaove() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_favor, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cboFavoe.DataSource = dt.DefaultView; cboFavoe.DisplayMember = favor_name; cboFavoe.ValueMember = house_favorID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushfitment() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_fitment, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobZhuang.DataSource = dt.DefaultView; cobZhuang.DisplayMember = fitment_name; cobZhuang.ValueMember = house_fitmentID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushfloor() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_floor, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobFlood.DataSource = dt.DefaultView; cobFlood.DisplayMember = floor_name; cobFlood.ValueMember = house_floorID; catch (Exception ey) MessageBox.Show(ey.Message); 房屋中介管理系統(tǒng) - 36 - private void flushmothed() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_mothed, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobUser.DataSource = dt.DefaultView; cobUser.DisplayMember = mothed_name; cobUser.ValueMember = house_mothedID; catch (Exception ey) MessageBox.Show(ey.Message); private void flushseat() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_seat, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cobDong.DataSource = dt.DefaultView; cobDong.DisplayMember = seat_name; cobDong.ValueMember = house_seatID; catch (Exception ey) MessageBox.Show(ey.Message); 單擊“ ”按鈕,將更改后的信息立即在界面上顯示 , 實現(xiàn)代碼如下: private void flushtype() con.ConDatabase(); try SqlDataAdapter da = new SqlDataAdapter(select * from tb_type, con.conn); DataTable dt = new DataTable(); da.Fill(dt); cboXing.DataSource = dt.DefaultView; cboXing.DisplayMember = type_names; cboXing.ValueMember = huose_typeID; catch (Exception ey) MessageBox.Show(ey.Message); 數(shù)據(jù)庫課程設(shè)計 - 37 - 7.4 房源信息查詢模塊設(shè)計代碼 frmSelect 窗體的 load 事件中, DataGridView 控件進行數(shù)據(jù)綁定,以顯示房源相關(guān)信息。實現(xiàn)代碼如下: private void frmSelect_Load(object sender,EventArgs e) try con.ConDatabase(); SplDataAdapter da=new SplDataAdapter(“ select*from view_house” ,con.conn); DataTable dt=new DataTable(); da.Fill(dt); this.dataGridView1.DataSource=dt.DefaultView; catch(Exception ey) MessageBox.Show(ey.Message); 單擊“查詢”按鈕,對 strMidle 變量進行相關(guān)處理,動態(tài)生成 SQL 語句,代碼如下: private void button1_Click(object sender, EventArgs e) strSql.Append(select * from view_house where ); if (strMidle.IndexOf(house_companyName)!=-1) if (strWhere != string.Empty) 房屋中介管理系統(tǒng) - 38 - strWhere += and + 物業(yè)名稱 like % + this.txtName.Text.Trim().ToString() + % ; else strWhere += 物業(yè)名稱 like % + this.txtName.Text.Trim().ToString() + %; strMidle=strMidle.Replace(house_companyName, #); if (strMidle.IndexOf(huose_typeID)!= -1) if (strWhere != string.Empty) strWhere += and + 類型 = + this.cboXing.Text.ToString() + ; else strWhere += 類型 = + this.cboXing.Text.ToString() + ; strMidle=strMidle.Replace(huose_typeID, #); if (strMidle.IndexOf(house_seatID) != -1) if (strWhere != string.Empty) strWhere += and + 幢座 = + this.cobDong.Text.ToString() + ; else strWhere += 幢座 = + this.cobDong.Text.ToString() + ; strMidle=strMidle.Replace(house_seatID, #); if (strMidle.IndexOf(house_favorID) != -1) if (strWhere != string.Empty) strWhere += and + 朝向 = + this.cboFavoe.Text.ToString() + ; else strWhere += 朝向 = + this.cboFavoe.Text.ToString() + ; strMidle=strMidle.Replace(house_favorID, #); if (strMidle.IndexOf(house_fitmentID) != -1) if (strWhere != string.Empty) strWhere += and + 裝修 = + this.cobZhuang.Text.ToString() + ; 數(shù)據(jù)庫課程設(shè)計 - 39 - else strWhere += 裝修 = + this.cobZhuang.Text.ToString() + ; strMidle = strMidle.Replace(house_fitmentID, #); if (strMidle.IndexOf(house_mothedID) != -1) if (strWhere != string.Empty) strWhere += and + 用途 = + this.cobUser.Text.ToString() + ; else strWhere += 用途 = + this.cobUser.Text.ToString() + ; strMidle = strMidle.Replace(house_mothedID, #); /tbho.house_mothedID=tbmo.house_mothedID and if (strMidle.IndexOf(house_floorID) != -1) if (strWhere != string.Empty) strWhere += and + 樓層 = + this.cobFlood.Text.ToString() + ; else strWhere += 樓層 = + this.cobFlood.Text.ToString() + ; strMidle = strMidle.Replace(house_floorID, #); if (strMidle.IndexOf(house_buildYear) != -1) if (strWhere != string.Empty) strWhere += and + 建筑年限 = + this.nudYear.Text.Trim().ToString() + ; else strWhere += 建筑年限 = + this.nudYear.Text.Trim().ToString() + ; strMidle = strMidle.Replace(house_buildYear, #); if (strMidle.IndexOf(house_area) != -1) if (strWhere != string.Empty) strWhere += and + 建筑面積 like % + this.txtArea.Text.Trim().ToString() + % ; else 房屋中介管理系統(tǒng) - 40 - strWhere += 建筑面積 like % + this.txtArea.Text.Trim().ToString() + %; strMidle = strMidle.Replace(house_area, #); if (strMidle.IndexOf(house_price) != -1) if (strWhere != string.Empty) strWhere += and + 價錢 like % + this.textBox1.Text.Trim().ToString() + % ; else strWhere += 價錢 like % + this.textBox1.Text.Trim().ToString() + %; strMidle = strMidle.Replace(house_price, #); if (strMidle.IndexOf(house_ID) != -1) if (strWhere != string.Empty) strWhere += and + 房屋編號 like % + this.textBox2.Text.Trim().ToString() + %; else strWhere += 房屋編號 like % + this.textBox2.Text.Trim().ToString() + %; strMidle = strMidle.Replace(house_ID, #); try string strS = strWhere.Substring(strWhere.Length - 4); if (strS.Trim() = and) strWhere = strWhere.Substring(0, strWhere.Length - 4);/去掉尾 and catch return; strSql.Append(strWhere); string strK = strSql.ToString(); try SqlDataAdapter da = new SqlDataAdapter(strK, con.conn); DataTable dt = new DataTable(); da.Fill(dt);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年綜合布線項目協(xié)議規(guī)范版版B版
- 2024年版股權(quán)激勵計劃合同書
- 二零二五年度勞動局指導(dǎo)下的勞動合同范本3篇
- 二零二五年度北京住宅租賃市場調(diào)研分析合同3篇
- 2025年度人工智能芯片研發(fā)技術(shù)人員勞動合同
- 素描粽子創(chuàng)意課程設(shè)計
- 自來水廠的課程設(shè)計
- 小學(xué)美術(shù)袋子課程設(shè)計
- 旅游急救知識課程設(shè)計
- 自動洗碗機課程設(shè)計
- 物業(yè)年會講話稿范文
- TCUWA40055-2023排水管道工程自密實回填材料應(yīng)用技術(shù)規(guī)程
- 2024年國家公務(wù)員考試《申論》真題(地市級)及答案解析
- 公眾號年終總結(jié)個人
- 私募股權(quán)投資基金績效考核制度
- 初三生活學(xué)習總結(jié)模板
- 2024-2025學(xué)年第一學(xué)期期中考試 初一語文 試卷
- 單位內(nèi)部發(fā)生治安案件、涉嫌刑事犯罪事件的報告制度
- 2023年心理學(xué)基礎(chǔ)知識試題及答案
- 湖南省岳陽市2023-2024學(xué)年高三上學(xué)期教學(xué)質(zhì)量監(jiān)測(一)(一模) 英語 含解析
- 河南省道德與法治初二上學(xué)期期末試題與參考答案(2024-2025學(xué)年)
評論
0/150
提交評論