企業(yè)辦公自動(dòng)化管理系統(tǒng)案例.ppt
《企業(yè)辦公自動(dòng)化管理系統(tǒng)案例.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《企業(yè)辦公自動(dòng)化管理系統(tǒng)案例.ppt(77頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
課程案例—企業(yè)辦公自動(dòng)化管理系統(tǒng),通過本案例學(xué)習(xí)一下內(nèi)容: 1.企業(yè)辦公自動(dòng)化管理系統(tǒng)開發(fā)的基本過程 2.系統(tǒng)需求分析和可行性分析 3.系統(tǒng)設(shè)計(jì)的方法 4.構(gòu)建開發(fā)環(huán)境 5.如何分析并設(shè)計(jì)數(shù)據(jù)庫 6.如何設(shè)計(jì)公共類 7.主要功能模塊的實(shí)現(xiàn)方法 8.系統(tǒng)的編譯與發(fā)布 9.SQL server技術(shù) 10. 面向?qū)ο蟮拈_發(fā)思想 11.分層開發(fā)模式,系統(tǒng)分析,一.需求分析 對(duì)于企業(yè)辦公自動(dòng)化管理系統(tǒng)來說,提高企業(yè)的管理效率、 方便企業(yè)職員的協(xié)助是至關(guān)重要,企業(yè)的辦公環(huán)境如下: 1.使用計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境屬于局域網(wǎng)。 2.公司規(guī)模50—100人,人手一臺(tái)計(jì)算機(jī)。 3.員工上下班考勤屬于人工考勤。 4.實(shí)行人性化管理,允許員工自己有發(fā)表意見和想法。 5.員工在工作中傳送和接收文件,很不方便。 6.對(duì)于公司的公告、新聞和規(guī)章制度,員工了解不及時(shí) 7.重要通知都是逐一打電話通知。,系統(tǒng)分析,需求分析結(jié)論 1.部門管理功能 2.員工管理功能 3.公告管理功能 4.文件管理功能 5.交流管理功能 6.考勤管理功能 7.規(guī)章制度管理功能 8.系統(tǒng)管理功能,二、系統(tǒng)設(shè)計(jì),1.系統(tǒng)目標(biāo) 根據(jù)需求分析的描述以及與用戶的溝通,現(xiàn)制定系統(tǒng)實(shí)現(xiàn)目標(biāo)如下: 系統(tǒng)采用人機(jī)對(duì)話方式,界面美觀友好,信息查詢靈活、方便,數(shù)據(jù)存儲(chǔ)安全可靠。 靈活、快速的發(fā)送和接收文件。 實(shí)現(xiàn)功能強(qiáng)大的公告發(fā)布與管理功能。 系統(tǒng)最大限度地實(shí)現(xiàn)易維護(hù)性和易操作性 界面簡潔、框架清晰、美觀大方。 實(shí)現(xiàn)企業(yè)部門和職員的信息管理功能。 通過后臺(tái)查看與刪除公告信息、查看公文信息。 對(duì)員工信息、職位信息與部門信息的管理。,二、系統(tǒng)設(shè)計(jì),業(yè)務(wù)流程圖,系統(tǒng)功能結(jié)構(gòu),企業(yè)辦公自動(dòng)化管理系統(tǒng)前臺(tái)(職員)功能結(jié)構(gòu)圖,系統(tǒng)功能結(jié)構(gòu),企業(yè)辦公自動(dòng)化管理系統(tǒng)前臺(tái)(職員)功能結(jié)構(gòu)圖,構(gòu)建開放環(huán)境,1.web系統(tǒng)開發(fā)環(huán)境 頁面開發(fā)環(huán)境:VS2005集成開發(fā)環(huán)境 開發(fā)語言:ASP.NET +C# 后臺(tái)數(shù)據(jù)庫: SQL Server2000 開發(fā)環(huán)境運(yùn)行平臺(tái):XP(SP2) 2.服務(wù)器端 WEB服務(wù)器:IIS6.0 數(shù)據(jù)庫服務(wù)器:SQL Server 2000 網(wǎng)站服務(wù)器運(yùn)行環(huán)境:.NET Framework sdk2.0 3.客戶端 瀏覽器:IE6.0 分辨率:最佳效果1024768,數(shù)據(jù)庫設(shè)計(jì),系統(tǒng)數(shù)據(jù)庫采用SQL Server2000數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為db_OAS.數(shù)據(jù)庫db_OAS中包括多張數(shù)據(jù)表。下面分別給出數(shù)據(jù)表概要說明、數(shù)據(jù)庫E-R圖、數(shù)據(jù)表關(guān)系圖、數(shù)據(jù)表的結(jié)構(gòu)。,數(shù)據(jù)表概要說明,數(shù)據(jù)表樹形結(jié)構(gòu)如下圖:,數(shù)據(jù)庫E-R的分析,課堂練習(xí): 對(duì)上表中的各個(gè)實(shí)體用E-R圖進(jìn)行分析。 要求: 1.用E-R圖描述出各個(gè)實(shí)體。 2.描述數(shù)據(jù)表結(jié)構(gòu)。 3.描述數(shù)據(jù)表之間的關(guān)系。,實(shí)體描述舉例,企業(yè)部門實(shí)體E-R圖描述,企業(yè)部門數(shù)據(jù)表結(jié)構(gòu)描述,數(shù)據(jù)表的關(guān)系圖,試寫出下列需求的SQL語句,根據(jù)輸入的”用戶名”“密碼”查詢“系統(tǒng)用戶表”中是否有記錄存在,并判斷該用戶是“管理員”還是“普通職員” 增加部門信息; 根據(jù)ID查看某個(gè)部門信息 刪除某個(gè)部門,復(fù)雜SQL語句的使用— 顯示企業(yè)的年度優(yōu)秀員工信息,1.優(yōu)秀員工的標(biāo)準(zhǔn)通過考勤考核(遲到和早退) 2.考勤結(jié)果的前2位 3.顯示的信息包括: 員工姓名,所在部門,照片,相關(guān)資料—來自SQL聯(lián)機(jī)叢書,使用 TOP 和 PERCENT 限制結(jié)果集 TOP 子句限制返回到結(jié)果集中的行數(shù)。 TOP n [PERCENT] n 指定返回的行數(shù)。如果未指定 PERCENT,n 就是返回的行數(shù)。 如果一個(gè) SELECT 語句既包含 TOP 又包含 ORDER BY 子句,那么返回的行將會(huì)從排序后的結(jié)果集中選擇。整個(gè)結(jié)果集按照指定的順序建立并且返回排好序的結(jié)果集的前 n 行。,相關(guān)資料—來自SQL聯(lián)機(jī)叢書,用 ORDER BY 對(duì)行進(jìn)行排序 ORDER BY 子句按查詢結(jié)果中的一列或多列對(duì)查詢結(jié)果進(jìn)行排序,用作排序依據(jù)的列總長度可達(dá) 8,060。有關(guān) ORDER BY 子句最大大小的更多信息,請(qǐng)參見 SELECT。 排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果沒有指定升序還是降序,就假定為 ASC。,相關(guān)資料—來自SQL聯(lián)機(jī)叢書,聚合函數(shù) 聚合函數(shù)對(duì)一組值執(zhí)行計(jì)算并返回單一的值。除 COUNT 函數(shù)之外,聚合函數(shù)忽略空值。聚合函數(shù)經(jīng)常與 SELECT 語句的 GROUP BY 子句一同使用。 Transact-SQL 編程語言提供下列聚合函數(shù): AVG MAX SUM MIN COUNT等,相關(guān)資料—來自SQL聯(lián)機(jī)叢書,使用內(nèi)聯(lián)接 內(nèi)聯(lián)接是用比較運(yùn)算符比較要聯(lián)接列的值的聯(lián)接。 下面的 Transact-SQL 查詢是內(nèi)聯(lián)接的一個(gè)示例: USE pubs SELECT * FROM authors AS a INNER JOIN publishers AS p ON a.city = p.city ORDER BY a.au_lname DESC 此內(nèi)聯(lián)接稱為相等聯(lián)接。它返回兩個(gè)表中的所有列,但只返回在聯(lián)接列中具有相等值的行。,,select a.name,a.dept,a.photoPath,b.state from tb_employee AS a inner join (select TOP 2 * from ( select employeeName, sum(late)+sum(quit) as state from tb_sign group by employeeName)as aa order by state)as b on a.name=b.employeeName order by b.state,ADO.NET 介紹,ADO.NET 對(duì) Microsoft SQL Server 和 XML 等數(shù)據(jù)源以及通過 OLE DB 和 XML 公開的數(shù)據(jù)源提供一致的訪問。 在創(chuàng)建 ADO.NET 時(shí),Microsoft 具有以下設(shè)計(jì)目標(biāo): 1.利用當(dāng)前的 ActiveX 數(shù)據(jù)類型 (ADO) 知識(shí)。 2.支持 N 層編程模型。 3. 集成 XML 支持。,ADO.NET介紹,和 .net framework類庫中其他所有東西一樣,ADO.net不過是一組類型(TYPES)而已,他們都位于SYSTEM.DATA名字空間中。,ADO.NET介紹,每一種.NET數(shù)據(jù)供應(yīng)器都實(shí)現(xiàn)為一組類型(types); System.Data.SqlClient名字空間---SQL Provider System.Data.OleDb名字空間---OLE DB Provider 不論選擇哪種Provider,每一種都提供一套相似的類(Class),ADO.NET介紹,.NET數(shù)據(jù)provider都支持的一些基礎(chǔ)對(duì)象。它們是: Connection:用于建立和釋放連接(SqlConnection--OleDbConnection) Command:用于存儲(chǔ)和執(zhí)行命令,如一個(gè)SQL查詢或一個(gè)存儲(chǔ)過程,并為命令指定參數(shù)。 DataReader:對(duì)數(shù)據(jù)庫中的數(shù)據(jù)提供直接、循環(huán)的只讀的訪問。 DataAdapter:建造于DataReader之上,用于創(chuàng)建和操作DataSet實(shí)體。,ADO.NET介紹,客戶可以通過DataReader或者DataSet來訪問數(shù)據(jù)。,Visual Studio 中的數(shù)據(jù)命名空間,.NET Framework 中的數(shù)據(jù)和 XML 命名空間包括: System.Data — 由構(gòu)成 ADO.NET 結(jié)構(gòu)的類組成,該結(jié)構(gòu)是托管應(yīng)用程序的主要數(shù)據(jù)訪問方法。ADO.NET 結(jié)構(gòu)使您可以生成可用于有效管理來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)的組件。 System.Data.OleDb — 構(gòu)成兼容數(shù)據(jù)源的 OLE DB .NET Framework 數(shù)據(jù)提供程序的類。這些類使您能連接到 OLE DB 數(shù)據(jù)源、針對(duì)數(shù)據(jù)源執(zhí)行命令并讀取結(jié)果。 System.Data.SqlClient — 構(gòu)成 SQL Server .NET Framework 數(shù)據(jù)提供程序的類,該提供程序允許您連接到 SQL Server 7.0、執(zhí)行命令并讀取結(jié)果。System.Data.SqlClient 命名空間與 System.Data.OleDb 命名空間類似,但為訪問 SQL Server 7.0 和更高版本進(jìn)行了優(yōu)化。,訪問數(shù)據(jù)示例,示例如何打開一連接,如何創(chuàng)建一個(gè)命令,以及如何利用DataReaer讀取結(jié)果。 示例展示如何使用DataSets (一個(gè)DataAdapter如何用于將一個(gè)DataTable添加到一個(gè)DataSets中),訪問數(shù)據(jù)示例--DataReader,1.設(shè)置一個(gè)連接 SqlConnection Cn = New SqlConnection(“Server=(local);database=db_OAS;Uid=sa;Pwd=“); 2.創(chuàng)建一個(gè)命令 SqlCommand Cmd = Cn.CreateCommand(); Cmd.CommandText = “select * from tb_department where ID=20“; 3. 打開連接Cn.Open(); 4. 執(zhí)行命令--》將結(jié)果存入DataReader SqlDataReader Rdr = Cmd.ExecuteReader();,訪問數(shù)據(jù)示例--DataReader,5.取結(jié)果并顯示 try { while (Rdr.Read()) { System.Console.WriteLine(String.Format(“{0},{1},{2}“, Rdr[0], Rdr[1], Rdr[2])); } } catch (System.Exception e) { System.Console.WriteLine(“Error:{0}“, e.Message); },訪問數(shù)據(jù)示例--DataReader,6.釋放資源,關(guān)閉連接 finally { Rdr.Close(); Cn.Close(); },訪問數(shù)據(jù)示例--DataSets,SqlConnection Cn = new SqlConnection(“Server=(local);database=db_OAS;Uid=sa;Pwd=“); SqlCommand Cmd = Cn.CreateCommand(); Cmd.CommandText = “select * from tb_department where ID=20“; SqlDataAdapter Da = new SqlDataAdapter(); Da.SelectCommand = Cmd; DataSet Ds = new DataSet(); Cn.Open(); Da.Fill(Ds, “tb_deparment“); Cn.Close();,訪問數(shù)據(jù)示例--DataSet,取數(shù)據(jù); try{ if (Ds.Tables[0].Rows.Count0) { DataRow row = Ds.Tables[0].Rows[0]; System.Console.WriteLine(String.Format(“{0},{1},{2}“, row[0], row[1], row[2])); } } catch (System.Exception e) { System.Console.WriteLine(“Error:{0}“, e.Message); },訪問數(shù)據(jù)示例--DataSet,finally { if (Cn.State==ConnectionState.Open) { Cn.Close(); } },,#region 利用DataSet存取查詢結(jié)果; public DataSet ExecuteSelect (string strSql, string strTableName) { SqlConnection conn = new SqlConnection(strConn); SqlCommand com = conn.CreateCommand(); com.CommandText = strSql; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = com; DataSet ds = new DataSet(); conn.Open(); da.Fill(ds, strTableName); conn.Close(); return ds; } #endregion,#region 增加、刪除、添加SQL語句接口 public int ExecuteUpdateAndInsert(string strSql) { SqlConnection conn = new SqlConnection(strConn); SqlCommand com = conn.CreateCommand(); com.CommandText = strSql; conn.Open(); int iResult=com.ExecuteNonQuery(); return iResult; } #endregion,接口的封裝,class DataAccess { const string strConn; public DataAccess () { strConn = “Server=(local);database=db_OAS;Uid=sa;Pwd=“; } 接口1:利用DataSet存取查詢結(jié)果—針對(duì)SELECT語句; 接口2: 增加、刪除、添加SQL語句接口 },接口1:利用DataSet存取查詢結(jié)果—針對(duì)SELECT語句,#region 該方法執(zhí)行查詢命令,并返回DataSet數(shù)據(jù)集; public DataSet Run(string strSQL, string strTableName) { SqlConnection conn = new SqlConnection(strConn); conn.Open(); SqlCommand com = new SqlCommand(strSQL, conn); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = com; DataSet ds = new DataSet(); da.Fill(ds, strTableName); conn.Close(); return ds; } #endregion,接口2: 增加、刪除、添加SQL語句接口,public bool Run(string strSQL) { SqlConnection con = new SqlConnection(strConn); con.Open(); //第二種產(chǎn)生命令對(duì)象的方法; SqlCommand com = new SqlCommand(strSQL, con); if (com.ExecuteNonQuery() 0) { con.Close(); return true; else { con.Close(); return false; } },接口的使用,1.創(chuàng)建數(shù)據(jù)類實(shí)例; DataAccess da = new DataAccess(); 2.調(diào)用接口; DataSet ds = da.Run(“Select * from b_department“, “dept“); string strSQL = “insert into tb_department values(“+s1+“,“+s2+“)“; da.Run(strSQL);,接口的使用,要求:點(diǎn)擊添加按鈕,將部門名和描述插入到Dropdownlist控件中顯示 點(diǎn)擊查詢按鈕,將顯示該部門的描述信息。,接口的使用,數(shù)據(jù)綁定; public void BindDept() { dlShow.DataSource = da.Run(“Select * from tb_department“, “dept“); dlShow.DataTextField = “name“; dlShow.DataBind(); },接口的使用,點(diǎn)擊添加按鈕; protected void Button1_Click(object sender, EventArgs e) { string s1=txtName.Text; string s2 = txtDemo.Text; string strSQL = “insert into tb_department values(“+s1+“,“+s2+“)“; da.Run(strSQL); BindDept(); },接口的使用,點(diǎn)擊查詢按鈕; protected void btnShowInfo_Click(object sender, EventArgs e) { string s1 = dlShow.SelectedValue; string strSql = “select * from tb_department where name=“ + s1 + ““; DataSet ds = da.Run(strSql,“dept“); if (ds.Tables[0].Rows.Count0) { LblShow.Text = “該部門介紹:“ + ds.Tables[0].Rows[0][2].ToString(); } },C#+SQL+HTML,protected void LoadInfo() { DataSet ds = da.Run(“select * from tb_department“, “dept“); Response.Write(““); Response.Write(““); Response.Write (“編號(hào)部門名稱部門介紹“); Response.Write(““); },C#+SQL+HTML,for (int i = 0; i “); Response.Write( ““+ds.Tables[0].Rows[i][0].ToString()+““+ds.Tables[0].Rows[i][1].ToString()+““+ds.Tables[0].Rows[i][2].ToString()+““ ); Response.Write(““); } Response.Write(““);,C#+SQL+HTML,,對(duì)連接對(duì)象執(zhí)行 SQL 語句 –來自MS幫助文檔,public abstract int ExecuteNonQuery () 可以使用 ExecuteNonQuery 執(zhí)行編錄操作(例如查詢數(shù)據(jù)庫的結(jié)構(gòu)或創(chuàng)建諸如表等的數(shù)據(jù)庫對(duì)象),或通過執(zhí)行 UPDATE、INSERT 或 DELETE 語句更改數(shù)據(jù)庫中的數(shù)據(jù)。 雖然 ExecuteNonQuery 不返回任何行,但是映射到參數(shù)的任何輸出參數(shù)或返回值都會(huì)用數(shù)據(jù)進(jìn)行填充。 對(duì)于 UPDATE、INSERT 和 DELETE 語句,返回值為該命令所影響的行數(shù)。對(duì)于其他所有類型的語句,返回值為 -1。 返回值---受影響的行數(shù)。,接口的使用,MyData md = new MyData();// 創(chuàng)建對(duì)象 DataSet Ds = md.ExecuteSql(“select * from tb_department where ID=‘20’”, “tb_department”); //使用接口 try { if (Ds.Tables[0].Rows.Count0) {……} } catch (System.Exception e) {…},接口參數(shù),控件的使用說明,用戶控件,用戶控件,BaseClass bc = new BaseClass(); if (rdoBtnAdmin.Checked) { DataSet ds =bc.GetDataSet(“select count(*) from tb_sysUser where userName=“+txtName.Text+“ and userPwd=“+txtPwd.Text+“and system=1“,“tb_employee“); if (ds .Tables[0].Rows.Count0) {} },用戶控件,BaseClass bc = new BaseClass(); DataSet ds = bc.GetDataSet( “ select a.name,a.dept,a.photoPath,a.job,b.state from tb_employee as a inner join( select TOP 2 * FROM (select employeeName, sum(late)+sum(quit) as state from tb_sign group by employeeName ) as aa order by state) as b on a.name =b.employeeName order by b.state“ ,“tb_sign“); DataList1.DataSource = ds; DataList1.DataBind();,數(shù)據(jù)綁定, runat=“server“ Height=“54px“ Width=“69px“ / 姓名: 部門: 職務(wù): ,顯示控件--GridView,顯示控件--GridView,顯示表格數(shù)據(jù)是軟件開發(fā)中的一個(gè)周期性任務(wù)。ASP.NET 提供了許多工具來在網(wǎng)格中顯示表格數(shù)據(jù) 可以使用 GridView 來完成以下操作: 通過數(shù)據(jù)源控件自動(dòng)綁定和顯示數(shù)據(jù)。 通過數(shù)據(jù)源控件對(duì)數(shù)據(jù)進(jìn)行選擇、排序、分頁、編輯和刪除。,顯示控件--GridView,通過以下方式自定義 GridView 控件的外觀和行為: 指定自定義列和樣式。 利用模板創(chuàng)建自定義用戶界面 (UI) 元素。 通過處理事件將自己的代碼添加到 GridView 控件的功能中。,比較 GridView 和 DataGrid,GridView 控件是 DataGrid 控件的后繼控件。與 DataGrid 控件相似,GridView 控件旨在在 HTML 表中顯示數(shù)據(jù)。 當(dāng)綁定到數(shù)據(jù)源時(shí),DataGrid 和 GridView 控件分別將 DataSource 中的一行顯示為輸出表中的一行。 DataGrid 和 GridView 控件都是從 WebControl 類派生的。,比較 GridView 和 DataGrid,雖然 GridView 控件與 DataGrid 控件具有類似的對(duì)象 模型,但與 DataGrid 控件相比,前者還具有許多新功能 和優(yōu)勢,包括: 更豐富的設(shè)計(jì)時(shí)功能。 改進(jìn)的數(shù)據(jù)源綁定功能。 排序、分頁、更新和刪除的自動(dòng)處理。 其他列類型和設(shè)計(jì)時(shí)列操作。 具有 PagerTemplate 屬性的自定義頁導(dǎo)航用戶界面 (UI)。,GridView 控件中設(shè)置數(shù)據(jù)顯示格式,可以指定 GridView 控件的行的布局、顏色、字體和對(duì)齊方式。 可以指定行中包含的文本和數(shù)據(jù)的顯示。 另外,可以指定將數(shù)據(jù)行顯示為項(xiàng)目、交替項(xiàng)、選擇的項(xiàng)還是編輯模式項(xiàng)。,GridView 控件中設(shè)置數(shù)據(jù)顯示格式,,使用 GridView 控件進(jìn)行數(shù)據(jù)綁定,GridView 控件提供了兩個(gè)用于綁定到數(shù)據(jù)的 選項(xiàng)(具體說明參見MSDN) 使用 DataSourceID 屬性進(jìn)行數(shù)據(jù)綁定,此選項(xiàng)讓您能夠?qū)?GridView 控件綁定到數(shù)據(jù)源控件 使用 DataSource 屬性進(jìn)行數(shù)據(jù)綁定,此選項(xiàng)使您能夠綁定到包括 ADO.NET 數(shù)據(jù)集和數(shù)據(jù)讀取器在內(nèi)的各種對(duì)象。,使用 GridView 控件進(jìn)行數(shù)據(jù)綁定,protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GridView1.DataSource = bc.GetDataSet(“select * from tb_department“,“department“); GridView1.DataKeyNames = new string[] { “ID“ }; GridView1.DataBind(); } },使用 GridView 控件編輯和刪除數(shù)據(jù),,HyperLinkField 類 –來自MSDN,HyperLinkField 類字段表示在數(shù)據(jù)綁定控件 中顯示為超鏈接的字段。 重要屬性說明: DataNavigateUrlFields 屬性 獲取或設(shè)置數(shù)據(jù)源中字段的名稱,用于為 HyperLinkField 對(duì)象中的超鏈接構(gòu)造 URL。 DataNavigateUrlFormatString 屬性 取或設(shè)置當(dāng) URL 數(shù)據(jù)綁定到數(shù)據(jù)源中的字段時(shí),HyperLinkColumn 中的超鏈接的 URL 的顯示格式。 DataNavigateUrlFormatString= “DeptInfoEdit2.aspx?id={0}“,顯示編輯的二級(jí)頁面,顯示編輯的二級(jí)頁面,根據(jù)傳過來的ID進(jìn)行查找,并顯示到頁面元素中去; if (!Page.IsPostBack ) { DataSet ds = bc.GetDataSet(“SELECT * FROM tb_department WHERE ID =“ + Request.QueryString[“id“].ToString() + ““, “department“); if (ds.Tables[0].Rows.Count 0) { TxtDeptName.Text = ds.Tables[0].Rows[0][“Name“].ToString(); TxtDeptMemo.Text = ds.Tables[0].Rows[0][“memo“].ToString(); } },理解事件冒泡,在ASP.NET框架中包含3個(gè)支持事件冒泡的標(biāo)準(zhǔn)控件(Repeater、DataList和DataGrid控件) 事件冒泡指上述這些控件能捕獲其子控件的事件。當(dāng)子控件產(chǎn)生一個(gè)事件時(shí),事件就向上“冒泡”傳給包含該子控件的容器控件(父控件),而容器控件就可以執(zhí)行一個(gè)子程序來處理該事件,事件處理,刪除事件: bc.SqlExecute(“DELETE FROM tb_department WHERE ID=“ + GridView1.DataKeys[e.RowIndex].Value.ToString() + ““); GridView1.DataSource = bc.GetDataSet(“select * from tb_department“, “department“); GridView1.DataBind();,使用第三方控件--FreeTextBox,使用第三方控件--FreeTextBox,在頁面源代碼中添加: ,使用第三方控件--FreeTextBox,使用第三方控件--FreeTextBox,通過存儲(chǔ)過程執(zhí)行 protected void BtnSave_Click(object sender, EventArgs e) { bc.ExecProcNotice(txtTitle.Text,FreeTextBox1.Text,Session[“LoginName“].ToString())) },存儲(chǔ)過程的設(shè)計(jì),插入公告; CREATE PROCEDURE [insert_tb_notice] ( @noticeTitle [varchar](40), @noticePerson [varchar](20), @noticeContent [text] ) AS insert into [db_OAS].[dbo].[tb_notice] ([noticeTitle], [noticePerson], [noticeContent]) values ( @noticeTitle, @noticePerson, @noticeContent ) GO,執(zhí)行存儲(chǔ)過程的代碼分析,執(zhí)行存儲(chǔ)過程--專門用于FreeTextBox public Boolean ExecProcNotice(string strTitle ,string strContent,string strName) { SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings[“conStr“]); conn.Open(); SqlCommand com = new SqlCommand(“insert_tb_notice“, conn); com.CommandType = CommandType.StoredProcedure; //標(biāo)題 SqlParameter pTitle = new SqlParameter(“@noticeTitle“, SqlDbType.VarChar, 40); pTitle.Value = strTitle; com.Parameters.Add(pTitle);,,//內(nèi)容 SqlParameter pContent = new SqlParameter(“@noticeContent“, SqlDbType.VarChar, 0); pContent.Value = strContent; com.Parameters.Add(pContent); //發(fā)布者 SqlParameter pName = new SqlParameter(“@noticePerson“, SqlDbType.VarChar, 20); pName.Value = strName; com.Parameters.Add(pName);,,if (com.ExecuteNonQuery()0) { conn.Close(); return true; } else { conn.Close(); return false; } },- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 企業(yè) 辦公自動(dòng)化 管理 系統(tǒng) 案例
鏈接地址:http://m.appdesigncorp.com/p-2522666.html