c案例教學(xué)之圖書管理系統(tǒng)_第1頁
c案例教學(xué)之圖書管理系統(tǒng)_第2頁
c案例教學(xué)之圖書管理系統(tǒng)_第3頁
c案例教學(xué)之圖書管理系統(tǒng)_第4頁
c案例教學(xué)之圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、圖書館管理 系統(tǒng)需求分析 在進(jìn)入系統(tǒng)之后首先是登錄系統(tǒng),根據(jù)用戶輸入的內(nèi)容判斷用戶的合法身份。 進(jìn)入讀者信息維護(hù)界面可以進(jìn)行讀者信息的增加、刪除、改變以及遍歷記錄。 進(jìn)入圖書信息維護(hù)界面可以進(jìn)行圖書信息的增加、刪除、改變以及遍歷記錄。 進(jìn)入出版社信息維護(hù)界面可以進(jìn)行出版社信息的增加、刪除、改變以及遍歷記錄。 進(jìn)入讀者借還書界面可以實(shí)現(xiàn)讀者借書、還書和查詢讀者借閱記錄的功能,并在讀者借還書過程中同步實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的變動(dòng)。 進(jìn)入綜合查詢界面可以通過用戶選擇的數(shù)據(jù)表和相應(yīng)的查詢條件來顯示查詢到的結(jié)果。圖書館管理系統(tǒng)的用例包括:讀者信息維護(hù)用例 圖書信息管理用例出版社信息管理用例 用戶信息管理用例讀者

2、借還書用例綜合查詢用例增加讀者信息刪除讀者信息修改讀者信息遍歷讀者信息借閱圖書歸還圖書查詢借閱信息1、讀者信息維護(hù) 包括添加讀者、刪除讀者、修改讀者和遍歷 讀者用例。2、讀者借書 檢查讀者是否可再借書 檢查所借圖書是否 有庫存 增加讀者借閱記錄 增加相應(yīng)讀 者借閱書數(shù)量 減少相應(yīng)圖書庫存數(shù)目3、讀者還書 刪除讀者借閱記錄 減少相應(yīng)讀者借閱書數(shù)量 增加相應(yīng)圖書庫存數(shù)目4、刪除圖書查詢圖書能否還有讀者借閱中 刪除圖書記錄5、刪除讀者歸還讀者借閱所有圖書 增加相應(yīng)圖書庫存數(shù)目 刪除讀者 普通用戶:擁有讀者、圖書、出版社的信息維護(hù),以及讀者借書還書和綜合和查詢的權(quán)限。 系統(tǒng)管理員:擁有讀者、圖書、出版

3、社、用戶用戶的信息維護(hù),以及讀者借書還書和綜合和查詢的權(quán)限。但其主要功能還是用戶信息維護(hù) 讀者信息維護(hù) 圖書信息維護(hù) 出版社信息維護(hù) 用戶 借/還書信息維護(hù) 綜合查詢 用戶信息管理 系統(tǒng)管理員 遍歷讀者 增加讀者 刪除讀者 讀者信息維護(hù) 用戶 修改讀者 讀者信息用例圖 遍歷圖書 增加圖書 刪除圖書 圖書信息維護(hù) 用戶 修改圖書 圖書信息用例圖 登錄界面主界面讀者信息讀者借還書出版社信息圖書信息用戶信息綜合查詢 用戶登錄時(shí)序圖 : 用戶用戶登錄界面用戶驗(yàn)證主界面1:用戶登錄2:驗(yàn)證用戶身份4:進(jìn)入到主界面3:通過. 維護(hù)讀者信息時(shí)序圖 : 用戶讀者信息維護(hù)界面綜合查詢界面讀者報(bào)表界面1:添加讀者

4、2:添加讀者記錄3:刪除讀者4:刪除讀者記錄5:修改讀者6:修改讀者記錄7:查詢讀者8:進(jìn)入綜合查詢界面9:顯示查詢讀者10:顯示讀者報(bào)表11:顯示讀者報(bào)表 借閱信息維護(hù)時(shí)序圖 : 用戶系統(tǒng)主界面借/還書管理界面借閱信息讀者信息圖書信息1:登錄到主界面2:進(jìn)入借/還書管理界面3:修改借閱信息4:修改讀者信息5:修改圖書信息建立數(shù)據(jù)庫,所需表及字段如下:圖書表:圖書表:所需字段:圖書編號(hào)、圖書名稱、圖書作者、出版社、出版日期、圖書價(jià)格、圖書分類、圖書庫存數(shù)量、現(xiàn)在庫存數(shù)量讀者信息表:讀者信息表:讀者編號(hào)、讀者姓名、讀者密碼、電話、Email、借書數(shù)量借書表:借書表:讀者編號(hào)、圖書編號(hào)、借閱日期、

5、應(yīng)還日期、實(shí)際歸還日期出版社表:出版社表:出版社名稱、地址、電話、 Email用戶表:用戶表:用戶編號(hào)、用戶密碼、用戶分類ADO.NET結(jié)構(gòu)A D O . N E T 可 以 訪 問 和 處 理 數(shù) 據(jù) 的 兩 個(gè) 組 件是:.NET框架數(shù)據(jù)提供程序和DataSet。.NET框架數(shù)據(jù)提供程序用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果的。DataSet對(duì)象也可以獨(dú)立于.NET框架數(shù)據(jù)提供程序使用,以管理應(yīng)用程序本地的數(shù)據(jù)或源自XML的數(shù)據(jù)。ADO.NET概述概述.NET框架數(shù)據(jù)提供程序.NET框架數(shù)據(jù)提供程序使用四個(gè)核心對(duì)象進(jìn)行數(shù)據(jù)處框架數(shù)據(jù)提供程序使用四個(gè)核心對(duì)象進(jìn)行數(shù)據(jù)處理理對(duì)象對(duì)象說明說明Con

6、nection建立與特定數(shù)據(jù)源的連接。所有建立與特定數(shù)據(jù)源的連接。所有Connection對(duì)象對(duì)象的基類均為的基類均為DbConnection類。類。Command對(duì)數(shù)據(jù)源執(zhí)行命令。公開對(duì)數(shù)據(jù)源執(zhí)行命令。公開Parameters,并且可以,并且可以通過通過Connection在在Transaction的范圍內(nèi)執(zhí)行。的范圍內(nèi)執(zhí)行。所有所有Command對(duì)象的基類均為對(duì)象的基類均為DbCommand類。類。DataReader從數(shù)據(jù)源中讀取只進(jìn)且只讀的數(shù)據(jù)流。所有從數(shù)據(jù)源中讀取只進(jìn)且只讀的數(shù)據(jù)流。所有DataReader對(duì)象的基類均為對(duì)象的基類均為DbDataReader類。類。DataAdapt

7、er用數(shù)據(jù)源填充用數(shù)據(jù)源填充DataSet并解析更新。所有并解析更新。所有DataAdapter對(duì)象的基類均為對(duì)象的基類均為DbDataAdapter類。類。除上表列出的核心類之外,.NET框架數(shù)據(jù)提供程序還包含CommandBuilder,Transaction,和Parameter等類。 ADO.NET概述概述 在數(shù)據(jù)訪問中必須建立到數(shù)據(jù)庫的物理連接。每個(gè)數(shù)據(jù)提供程序都包含自己特有的Connection對(duì)象。當(dāng)使用OLE DB數(shù)據(jù)提供程序時(shí),要使用System.Data.OleDb空間的OleDbConnection對(duì)象, 使用SQL Server 數(shù)據(jù)提供程序時(shí),要使用位于System.

8、Data.SqlClient命名空間的SqlConnection對(duì)象。在程序開始導(dǎo)入名稱空間System.Data.SqlClient和System.Data.OleDb。 1、SqlConnection類SqlConnection類有兩個(gè)構(gòu)造函數(shù),一個(gè)不帶參數(shù),一個(gè)接受連接字符串。可以使用以下兩種方法進(jìn)行實(shí)例化連接。string connStr=“server=(local); Initial Catalog=students;user Id=sa;password=1234”; SqlConnection conn=new SqlConnection(connStr); conn.Open

9、( );或者SqlConnection conn=new SqlConnection(“server=(local); Initial Catalog=students;user Id=sa;password=1234”;); conn.Open( ); 注意:只有當(dāng)一個(gè)連接關(guān)閉后才能把兩外一個(gè)不同的連接字符串賦值給Connection對(duì)象。 如果不知道該對(duì)象是打開的還是關(guān)閉的,可以檢查對(duì)性的State屬性,它的值可以是Open,也可以是Closed。 2、連接字符串ConnectionString連接字符串包含由一些“屬性名=值”對(duì)組成的集合,每個(gè)“屬性名=值”對(duì)都由分號(hào)隔開。string

10、connStr=“server=(local); Initial Catalog=students;user Id=sa;password=1234”;其中,server為服務(wù)器地址,值local表示使用本地機(jī)器。server關(guān)鍵字也可以用Data Source來代替,即字符串可以寫成string connStr=“Data Source=(local); Initial Catalog=students;user Id=sa;password=1234”; Initial Catalog指明了連接使用的數(shù)據(jù)庫,user ID和password則分別指明了訪問數(shù)據(jù)庫時(shí)使用的用戶名和密碼。 如果

11、在安裝數(shù)據(jù)庫軟件時(shí)選擇的身份驗(yàn)證方式為windows身份驗(yàn)證模式,則應(yīng)使用如下連接字符串:string connStr=“Data Source=(local); Initial Catalog=students; Integrated Security=SSPI”;Integrated Security=SSPI表示連接時(shí)使用的是windows身份驗(yàn)證模式。 3、SqlConnection的方法SqlConnection由自己的方法,如前面使用過的Open( )和Closed( )方法。其他方法還有:CreateCommand 創(chuàng)建并返回一個(gè)與SqlConnection關(guān)聯(lián)的SqlComma

12、nd對(duì)象。ChangeDatabase 為打開的SqlConnection更改當(dāng)前數(shù)據(jù)庫。注意:數(shù)據(jù)庫連接必須小心,應(yīng)該在最晚的時(shí)候建立連接,在最早的時(shí)候關(guān)閉連接,以釋放占用的內(nèi)存和網(wǎng)絡(luò)帶寬資源。 4、連接SQL SERVER的數(shù)據(jù)訪問實(shí)例(1)啟動(dòng)visual studio .net,新建一個(gè)windows 應(yīng)用程序。(2)從工具欄中拖動(dòng)一個(gè)Button控件到頁面中,將ID設(shè)為btnconnect,Text屬性為“點(diǎn)擊連接數(shù)據(jù)庫”。(3)在Form1.cs文件中添加名稱空間using System.Data.SqlClient;(4)雙擊btnConnect控件,在Click事件相關(guān)處理程序

13、btnconnect_click中輸入以下代碼: try SqlConnection conn=new SqlConnection( );conn.ConnectionString=“Data Source=(local);user id=sa;password=1234; initial Catalog=student;”;conn.Open( );if(conn.State=ConnectionState.Open) MessageBox.Show(“連接已經(jīng)打開”);conn.Close( );if(conn.State=ConnectionState.Closed) MessageBo

14、x.Show(“連接已經(jīng)關(guān)閉”);catch(Exception e) MessageBox.Show(“連接失敗,原因可能是“+e.Message);5、按ctrl+f5運(yùn)行項(xiàng)目,單擊表單中的”點(diǎn)擊連接數(shù)據(jù)庫“按鈕,如果數(shù)據(jù)庫連接成功,則將依次彈出兩個(gè)對(duì)話框。6、如果連接不成功,則會(huì)得到提示錯(cuò)誤信息的頁面。 1、說明目前在網(wǎng)絡(luò)流行的小型數(shù)據(jù)庫access,就應(yīng)該使用OLE DB .NET 數(shù)據(jù)提供程序來訪問數(shù)據(jù),該程序在System.Data.OleDb空間中定義。使用OLE DB .NET 數(shù)據(jù)提供程序與使用SQL SERVER.NET數(shù)據(jù)提供程序的方式十分類似,需要注意的是連接字符串有所

15、不同,連接到access數(shù)據(jù)庫的字符串格式如下:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydb.mdb;user id=;password=;前面兩項(xiàng)為必須項(xiàng),如果數(shù)據(jù)庫沒有密碼,后面兩者都可以省略,在實(shí)際項(xiàng)目中,Data Source還必須轉(zhuǎn)化為絕對(duì)路徑。(1)啟動(dòng)visual studio .net,新建一個(gè)windows應(yīng)用程序。(2)在表單Form1中添加按鈕btnconnection,屬性設(shè)置同前面例子。(3)在在Form1.cs文件中添加名稱空間using System.Data.OleDb;(4)雙擊btnConnect控件,在

16、Click事件相關(guān)處理程序btnconnect_click中輸入以下代碼:(5)運(yùn)行程序。 tryOleDbConnection conn=new OleDbConnection( );string connStr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=;connStr+=Datadb.mdb;MessageBox.Show(當(dāng)前連接字符串為:n+connStr+n);conn.ConnectionString=connStr;conn.Open( );if(conn.State=ConnectionState.Open)MessageBox

17、.Show(連接成功);conn.Close() ;if(conn.State=ConnectionState.Closed)MessageBox.Show(關(guān)閉成功); catch( Exception ex)MessageBox.Show(連接失敗,原因是:n+ex.Message); DataAdapter 如何將數(shù)據(jù)庫的數(shù)據(jù)放在 DataSet 中?數(shù)據(jù)庫數(shù)據(jù)庫DataSet數(shù)據(jù)集數(shù)據(jù)集Connection數(shù)據(jù)庫連接數(shù)據(jù)庫連接DataAdapter數(shù)據(jù)適配器數(shù)據(jù)適配器DataAdapter 對(duì)象 不同命名空間的 DataAdapter 對(duì)象命名空間對(duì)應(yīng)的 DataAdapter 對(duì)象S

18、ystem.Data.SqlClient SqlDataAdapterSystem.Data.OleDbOleDbDataAdapterSystem.Data.Odbc OdbcDataAdapterSystem.Data.OracleClientOracleDataAdapter如何填充數(shù)據(jù)集 使用 DataAdapter 對(duì)象填充數(shù)據(jù)集使用使用 Fill() 方法方法填充填充 DataSet 中的表中的表使用使用 Connection 連接數(shù)據(jù)源連接數(shù)據(jù)源ConnectionDataAdapter 的的 Fill() 方法方法填充數(shù)據(jù)集SqlDataAdapter 對(duì)象名對(duì)象名 = new

19、 SqlDataAdapter(查詢用查詢用sql語句語句, 數(shù)據(jù)庫連接數(shù)據(jù)庫連接);創(chuàng)建創(chuàng)建 SqlDataAdapter 對(duì)象對(duì)象1DataAdapter對(duì)象對(duì)象. Fill(數(shù)據(jù)集對(duì)象數(shù)據(jù)集對(duì)象, 數(shù)據(jù)表名稱字符串?dāng)?shù)據(jù)表名稱字符串);填充填充 DataSet2DataAdapter 對(duì)象小結(jié) DataAdapter 的主要屬性和方法屬性說明SelectCommand 從數(shù)據(jù)庫檢索數(shù)據(jù)的 Command 對(duì)象方法說明Fill 向 DataSet 中的表填充數(shù)據(jù)Update將 DataSet 中的數(shù)據(jù)提交到數(shù)據(jù)庫OLEDBDataAdapter 用于訪問任何由 OleDb 提供程序公開的數(shù)據(jù)

20、源 用作數(shù)據(jù)集和數(shù)據(jù)源之間的橋梁,以便檢索和存儲(chǔ)數(shù)據(jù) 與 OleDbConnection 和 OleDbCommand 一起使用以提高性能DataAdapter 類的屬性和方法屬性說明InsertCommand 表示用于在數(shù)據(jù)庫中插入新記錄的 SQL 語句或存儲(chǔ)過程UpdateCommand 表示用于在數(shù)據(jù)庫中更新記錄的 SQL 語句或存儲(chǔ)過程DeleteCommand 表示用于從數(shù)據(jù)庫中刪除記錄的 SQL 語句或存儲(chǔ)過程SelectCommand 表示用于從數(shù)據(jù)庫中選擇記錄的 SQL 語句或存儲(chǔ)過程事件說明RowUpdated 在對(duì)數(shù)據(jù)源執(zhí)行更新命令之后的過程中激發(fā)該事件RowUpdatin

21、g 在對(duì)數(shù)據(jù)源執(zhí)行命令更新之前的過程中激發(fā)該事件OleDbConnection objOleConn = new OleDbConnection();objOleConnection.ConnString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source = + D:Students.mdb;objOleConn.Open();string selstr =SELECT * from Student;DataSet objDS = new DataSet();OleDbDataAdapter objOleAdapter = new OleDbData

22、Adapter();objOleAdapter.SelectCommand = new OleDbCommand(selstr,objOleConn);objOleAdapter.Fill(objDS,Student);傳遞給 OleDbAdapter 對(duì)象將數(shù)據(jù)填充到數(shù)據(jù)集中SQLDataAdapter 它設(shè)計(jì)為使用 Microsoft SQL Server 7 或更高版本提供最佳通信 該適配器在數(shù)據(jù)集和 Microsoft SQL Server 之間起橋梁作用,提供用于保存和檢索數(shù)據(jù)的接口 與 SqlConnection 和 SqlCommand 相互配合使用SqlConnection o

23、bjSqlConn = new SqlConnection (SERVER=MYSERVER;database=Students;uid=sa; password=playware);SqlDataAdapter objSqlAdapter = new SqlDataAdapter(SELECT * from Student,objSqlConn);objSqlConn.Open();DataSet objDS = new DataSet();objSqlAdapter.Fill(objDS,Student);創(chuàng)建與 SQL Server 數(shù)據(jù)庫的連接,并用相應(yīng)的值填充數(shù)據(jù)集 建立數(shù)據(jù)連接之后

24、,就可以執(zhí)行數(shù)據(jù)訪問操作和數(shù)據(jù)操縱操作了,一般對(duì)數(shù)據(jù)庫的操作被概括為CRUD-Create Read Update和Delete。ADO.NET中定義Command類去執(zhí)行這些操作。 在.NET中存在SqlCommand和OleDbCommand兩種類,兩者類似。 數(shù)據(jù)命令通常包括的內(nèi)容有:一個(gè)連接(Connection):命令對(duì)象所使用的連接對(duì)象;使用它與數(shù)據(jù)庫通信。命令的名稱或文本(CommandText):設(shè)置要對(duì)數(shù)據(jù)源執(zhí)行的SQL語句或存儲(chǔ)過程。命令類型(CommandType):指明命令的類型,是存儲(chǔ)過程還是普通SQL文本;參數(shù)(Patameters):參數(shù)集合,可以分別設(shè)置或者讀取

25、這些參數(shù)。 其中,CommandText的內(nèi)容和CommandType有關(guān),當(dāng)類型為StoreProcedure時(shí), CommandText屬性為存儲(chǔ)過程的名稱,當(dāng)類型為TableDirect時(shí), CommandText屬性為要訪問的表的名稱,當(dāng)類型為Text時(shí),則CommandText屬性為SQL語句。默認(rèn)為Text。1、 SqlCommand對(duì)象的創(chuàng)建方法一:SqlCommand cmd=new SqlCommand( ); /創(chuàng)建命令對(duì)象cmd.Connection=ConnectionObject;/將已有連接賦給命令對(duì)象cmd.CommandText=CommandText;/將已有

26、命名文本賦給命令對(duì)象CommandText可以是從數(shù)據(jù)庫檢索數(shù)據(jù)的SQL Select語句: string CommandText=“select * from student”;也可以是一個(gè)存儲(chǔ)過程的名稱:string CommandText=“GetAllStudent”;cmd.CommandType=CommandType.StoreProcedure;方法二:將命令文本放入構(gòu)造函數(shù)作為參數(shù):SqlCommand cmd=new SqlCommand(CommandText);cmd.Connection=ConnectionObject;方法三:直接將命名文本和連接對(duì)象放入構(gòu)造函數(shù)S

27、qlCommand cmd=new SqlCommand(CommandText,ConnectionObject);方法四:可以直接使用Connection對(duì)象的CreateCommand方法SqlCommand cmd=conn.CreateCommand( );cmd.CommandText=“Select ID,sName from student”;2、 SqlCommand對(duì)象的方法SqlCommand對(duì)象提供了四個(gè)方法:ExecuteNonQuery:執(zhí)行不返回結(jié)果的命令,通常使用這個(gè)命令執(zhí)行插入、更新或者刪除操作;ExecuteScalar:執(zhí)行返回單個(gè)值的命令;Execute

28、Reader:執(zhí)行命令,將結(jié)果集填充DataReader對(duì)象;ExecuteXmlReader: SqlCommand對(duì)象特有的方法,該方法執(zhí)行將返回XML字符串的命令,返回一個(gè)包含所返回的XML的System.Xml.XmlReader對(duì)象。1)ExecuteScalar方法執(zhí)行返回單個(gè)值的命令,例如,想獲取數(shù)據(jù)庫中學(xué)生的總?cè)藬?shù),可以使用這個(gè)方法執(zhí)行SQL查詢:Select count(*) from student。ExecuteScalar方法使用舉例:(1)新建windows應(yīng)用程序,在表單中加入按鈕控件btnGetCount,以及l(fā)abel 控件lblResult。(2)雙擊btnG

29、etCount控件,輸入以下代碼: (3) 對(duì)代碼中綠色部分進(jìn)行修改,即可以完成對(duì)OLE DB數(shù)據(jù)庫的操作。string commandText=“select count(*) from student”;string connString=“Date Source=(local);Initial Catalog=students;user id=sa;password=1234”;SqlConnection conn=new SqlConnection( );conn.ConnectionString=connString;SqlCommand cmd=new SqlCommand(com

30、mandText,conn);conn.Open( );string count=cmd.ExecuteScalar( ).ToString( );conn.Close( );this.lblResult.Text=“共有”+count+”學(xué)生!”;2)ExecuteNonQuery方法主要用來更新數(shù)據(jù),通常使用它來執(zhí)行Update、Insert、Delete語句。該方法返回值意義如下:對(duì)于Update、Insert、Delete語句返回值為該命令所影響的行數(shù),對(duì)于其它類型的語句,返回值為-1。ExecuteNonQuery方法使用舉例:string updateQuery=“UPdate s

31、tudent Set sName=小李”+”Where ID=200131500145”;SqlConnection conn=new SqlConnection( );conn.ConnectionString=connectionString;SqlCommand cmd=new SqlCommand(updateQuery,conn);conn.Open( ); int RecordsAffected=cmd.ExecuteNonQuery( ); conn.Close( );UpdateUpdate、InsertInsert、DeleteDelete語句中參數(shù)構(gòu)造方式語句中參數(shù)構(gòu)造方式

32、在updateQuery中的更新參數(shù)應(yīng)該根據(jù)用戶實(shí)際輸入的信息進(jìn)行處理,要達(dá)到這個(gè)目的就必須根據(jù)用戶輸入的數(shù)據(jù)來構(gòu)造命令,構(gòu)造命令有多種形式。(1)字符串拼接方式假設(shè)已經(jīng)將用戶輸入的數(shù)據(jù)保存到了變量中:string userName=“小李“;string user id=“200131500145”;則命令可以構(gòu)造如下:string updateQuery=“Update student Set sName= ”+userName+” ”+”Where ID= “+user id+” “;UpdateUpdate、InsertInsert、DeleteDelete語句中參數(shù)構(gòu)造方式語句中參數(shù)

33、構(gòu)造方式(2)參數(shù)化方式l 在SQL SERVER .NET中指定參數(shù)當(dāng)命令文本在指定具體命令時(shí),必須指出哪部分是參數(shù),可變參數(shù)要加前綴。Update student Set sName=userName where ID=user idstring updateQuery=“Update student Set sName=userName”+”Where ID=user id”;SqlConnection conn=new SqlConnection(connectionString);SqlCommand cmd=new SqlCommand(updateQuery,conn); 有了包

34、含參數(shù)的Command對(duì)象,需要為命令中的每一個(gè)參數(shù)創(chuàng)建一個(gè)Parameter對(duì)象。SqlCommand類提供了一個(gè)Parameters集合屬性,用以為命令保存所有的參數(shù)。通過調(diào)用該集合的Add方法,在集合中添加一個(gè)新的參數(shù)。cmd.Parameters.Add(“userName”,userName);cmd.Parameters.Add(“user id”,user id);Add方法中第一個(gè)參數(shù)為命令中的參數(shù)名,后面第二個(gè)參數(shù)則是用于定義的變量,保存了用戶輸入的信息。帶參數(shù)的命令設(shè)置好后可以和往常一樣執(zhí)行ExecuteNonQuery方法。l在OLE DB .NET中指定參數(shù) OLE D

35、B .NET并不支持指定參數(shù)的方法,但是可以在查詢中使用?來作為占位符來指定參數(shù)將出現(xiàn)的位置。Update student Set sName=? Where ID=? 由于只是使用了占位符,在添加Parameter對(duì)象時(shí)必須按照參數(shù)出現(xiàn)的順序添加,如:OleDbCommand cmd=new OleDbCommand(updateQuery,conn);cmd.Parameters.Add(“sName”,userName);cmd.Parameters.Add(“ID”,user id); 此時(shí)userName將會(huì)賦值給第一個(gè)參數(shù),user id將會(huì)賦值給第二個(gè)參數(shù),兩句代碼如果調(diào)換前后順

36、序,則user id的值賦值給第一個(gè)參數(shù),userName的值賦值給第二個(gè)參數(shù),即Add方法的第一個(gè)參數(shù)沒有意義。新建WINDOWS應(yīng)用程序,將表單設(shè)計(jì)如下:表單中各個(gè)對(duì)象為label1,label2,textbox1,textbox2,button1,button2。在Form1.cs中導(dǎo)入名稱空間System.Data.SqlClient,然后添加一個(gè)CheckInfo方法,對(duì)輸入的數(shù)據(jù)進(jìn)行檢查。bool CheckInfo( ) if(this.textbox1.Text.Trim( )=“”) MessageBox.Show(“學(xué)號(hào)不完整“); return false; else i

37、f(this.textbox2.Text.Trim( )=“”) MessageBox.Show(“姓名不完整”); return false; return true; 雙擊button1,輸入以下代碼:if(this.CheckInfo( ) string userName=this.textbox2.Text.Trim( ); string user id=this.textbox1.Text.Trim( );SqlConnection conn=new SqlConnection( );conn.ConnectionString=“Data Source=(local);Initial

38、 Catalog=student;user id=sa;password=1234”;string updateQuery=“update student Set sName=”+userName+” “+”Where ID=”+user id+” ”;SqlCommand cmd=new SqlCommand(updateQuery,conn);conn.Open( );int RecordsAffected=com.ExecuteNonQuery( );conn.Close( );雙擊button2,輸入以下代碼:if(this.CheckInfo( ) string userName=t

39、his.textbox2.Text.Trim( ); string user id=this.textbox1.Text.Trim( );SqlConnection conn=new SqlConnection( );conn.ConnectionString=“Data Source=(local);Initial Catalog=student;user id=sa;password=1234”;string updateQuery=“update student Set sName=userName Where ID=user id ”;SqlCommand cmd=new SqlCom

40、mand(updateQuery,conn);cmd.Parameters.Add(new SqlParameter(“userName”,userName)cmd.Parameters.Add(new SqlParameter(“user id”,user id);conn.Open( );int RecordsAffected=com.ExecuteNonQuery( );conn.Close( );示例代碼:示例代碼:string insertQuery=“Insert into student (ID,sName,sGrade,sSex,sEmail,sPhone,sAddress)”+“Values(2000131500145,小張,男,,”+宏博公寓)”;SqlConnection conn=ne

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論