版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫設(shè)計(jì)與開發(fā)江門職業(yè)技術(shù)學(xué)院數(shù)據(jù)庫設(shè)計(jì)與開發(fā)江門職業(yè)技術(shù)學(xué)院1使用C#訪問數(shù)據(jù)庫典型的信息系統(tǒng)包含兩部分:1,用戶界面(前臺(tái))2,數(shù)據(jù)庫(后臺(tái))如何建立用戶界面與數(shù)據(jù)庫的鏈接,來形成一個(gè)簡(jiǎn)單的信息系統(tǒng)框架?使用C#訪問數(shù)據(jù)庫典型的信息系統(tǒng)包含兩部分:如何建立用戶界面2ADO.NET簡(jiǎn)介以流的形式從文件中讀寫數(shù)據(jù)少量數(shù)據(jù)不適用于大量數(shù)據(jù)ADO.NET簡(jiǎn)介以流的形式從文件中讀寫數(shù)據(jù)少量數(shù)據(jù)不適用3ADO.NET簡(jiǎn)介以流的形式從文件中讀寫數(shù)據(jù)少量數(shù)據(jù)不適用于大量數(shù)據(jù)中央數(shù)據(jù)庫
要管理數(shù)據(jù)庫,需要專門的軟件應(yīng)用程序RDBMSACCESSSQL-ServerORACLEADO.NET簡(jiǎn)介以流的形式從文件中讀寫數(shù)據(jù)少量數(shù)據(jù)不適用4ADO.NET簡(jiǎn)介中央數(shù)據(jù)庫用戶需要時(shí),可以隨時(shí)訪問數(shù)據(jù)用戶計(jì)算機(jī)向數(shù)據(jù)庫服務(wù)器發(fā)送請(qǐng)求客戶端不同的訪問方法和技術(shù)ADO.NETADO.NET簡(jiǎn)介中央數(shù)據(jù)庫用戶需要時(shí),可以隨時(shí)訪問數(shù)據(jù)用5ADO.NET簡(jiǎn)介.NETFrameworkADO.NETSystem.Data命名空間以ActiveX數(shù)據(jù)對(duì)象(ADO)為基礎(chǔ)以XML(擴(kuò)展標(biāo)記語言)為格式傳送和接收數(shù)據(jù)ADO.NET簡(jiǎn)介.NETFrameworkADO.N6ADO.NET
對(duì)數(shù)據(jù)庫的訪問(1)將數(shù)據(jù)傳遞到用戶界面時(shí),ADO.NET
采用XML
格式數(shù)據(jù)已緩存斷開式數(shù)據(jù)結(jié)構(gòu)ADO.NET對(duì)數(shù)據(jù)庫的訪問(1)將數(shù)據(jù)傳遞到用戶界面時(shí),7ADO.NET
對(duì)數(shù)據(jù)庫的訪問(2)對(duì)于Insert,Update,Delete等單向操作應(yīng)用程序
數(shù)據(jù)庫1、用Connection.Open打開數(shù)據(jù)庫2、用DataAdaptor.Command或者Command.Execute執(zhí)行命令3、關(guān)閉數(shù)據(jù)庫Insert用InsertCommandDelete用DeleteCommandUpdate用UpdateCommandADO.NET對(duì)數(shù)據(jù)庫的訪問(2)對(duì)于Insert,Upd8ADO.NET
對(duì)數(shù)據(jù)庫的訪問(3)應(yīng)用程序
數(shù)據(jù)庫關(guān)閉數(shù)據(jù)庫1、用Connection.Open建立連接2、用DataAdaptor.SelectCommand
執(zhí)行命令DataAdaptor.Fill對(duì)于Select的雙向操作
DataSetADO.NET對(duì)數(shù)據(jù)庫的訪問(3)應(yīng)用程序關(guān)閉數(shù)據(jù)庫1、9.NET數(shù)據(jù)提供程序1ConnectionCommandDataReaderDataAdapterADO.NETDataSet.NETFramework
數(shù)據(jù)提供程序1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各項(xiàng)組成的集合:.NET數(shù)據(jù)提供程序1ConnectionCommand10.NET數(shù)據(jù)提供程序2
客戶端服務(wù)器數(shù)據(jù)集2、將數(shù)據(jù)發(fā)送到數(shù)據(jù)集A、客戶端修改數(shù)據(jù)集3、數(shù)據(jù)集傳遞給客戶端B、將修改后的數(shù)據(jù)集傳遞給服務(wù)器1、客戶端從服務(wù)器請(qǐng)求數(shù)據(jù)1,2,3是從服務(wù)器檢索數(shù)據(jù)的過程A、B是對(duì)數(shù)據(jù)庫修改的過程.NET數(shù)據(jù)提供程序2客戶端服務(wù)器數(shù)據(jù)集2、將數(shù)據(jù)發(fā)送11.NET數(shù)據(jù)提供程序3用于SQLServer
的.NETFramework數(shù)據(jù)提供程序System.Data.SqlClient
命名空間僅限于連接SQLServer數(shù)據(jù)庫7.0
或更高版本.NET數(shù)據(jù)提供程序3用于SQLServer的.12每種.NET數(shù)據(jù)提供程序都是由以下四個(gè)對(duì)象組成:ConnectionCommandDataAdapterDataReaderC#操作SQLServer數(shù)據(jù)庫的對(duì)象每種.NET數(shù)據(jù)提供程序都是由以下四個(gè)對(duì)象組成:C#操作13C#操作SQLServer數(shù)據(jù)庫的步驟引入命名空間usingSystem.Data.SqlClient。定義連接串。定義SqlConnection對(duì)象,并使用Open()方法打開對(duì)數(shù)據(jù)庫的連接。定義SqlCommand對(duì)象,并指定使用哪個(gè)連接對(duì)象連接到數(shù)據(jù)庫。定義SqlCommand對(duì)象的命令類型。定義SqlCommand對(duì)象使用何種SQL命令。使用SQLCommand對(duì)象的方法獲得數(shù)據(jù)庫中的數(shù)據(jù)并放入結(jié)果集中。使用SqlDataReader對(duì)象的方法將結(jié)果集中的數(shù)據(jù)讀取出來加以操作。關(guān)閉數(shù)據(jù)庫連接,即調(diào)用SqlConnection的Close()方法。C#操作SQLServer數(shù)據(jù)庫的步驟引入命名空間using141、為什么使用Connection應(yīng)用程序數(shù)據(jù)源請(qǐng)求數(shù)據(jù)Connection橋梁1、為什么使用Connection應(yīng)用程序數(shù)據(jù)源請(qǐng)求數(shù)據(jù)C15Connection主要成員必須顯式關(guān)閉連接屬性說明ConnectionString連接字符串state當(dāng)前連接的狀態(tài)方法說明Open打開數(shù)據(jù)庫連接Close關(guān)閉數(shù)據(jù)庫連接Connection主要成員必須顯式關(guān)閉連接屬性說明Con16連接數(shù)據(jù)庫步驟連接數(shù)據(jù)庫的步驟:1、定義連接字符串2、創(chuàng)建Connection對(duì)象3、打開與數(shù)據(jù)庫的連接DataSource=服務(wù)器名;InitialCatalog=數(shù)據(jù)庫名;UserID=用戶名;Pwd=密碼SqlConnectionconnection=newSqlConnection(connString);連接字符串connection.Open();沒有用戶名和密碼,可省略連接數(shù)據(jù)庫步驟連接數(shù)據(jù)庫的步驟:2、創(chuàng)建Connectio17示例1代碼分析//數(shù)據(jù)庫連接字符串stringconnString="DataSource=.;InitialCatalog=MySchool;UserID=sa";//創(chuàng)建
Connection對(duì)象SqlConnectionconnection=newSqlConnection(connString);
//打開數(shù)據(jù)庫連接connection.Open();MessageBox.Show("打開數(shù)據(jù)庫連接成功");
//關(guān)閉數(shù)據(jù)庫連接connection.Close();MessageBox.Show("關(guān)閉數(shù)據(jù)庫連接成功");表示本機(jī)示例1代碼分析//數(shù)據(jù)庫連接字符串表示本機(jī)182、為什么使用Command應(yīng)用程序打開數(shù)據(jù)庫處理數(shù)據(jù)……數(shù)據(jù)源Connection?怎樣處理數(shù)據(jù)Command執(zhí)行命令并從數(shù)據(jù)源中返回結(jié)果2、為什么使用Command應(yīng)用程序數(shù)據(jù)源Connecti19Command的主要成員屬性說明ConnectionCommand對(duì)象使用的數(shù)據(jù)庫連接CommandText執(zhí)行的SQL語句方法說明
ExecuteNonQuery執(zhí)行命令但不返回任何結(jié)果集,一般用于InsertUpdataDelete等ExecuteReader返回DataReader對(duì)象,一般用于Select等返回結(jié)果集的SQL語句ExecuteScalar返回單個(gè)值,返回結(jié)果集中第一行的第一列,如執(zhí)行COUNT(*)Command的主要成員屬性說明ConnectionCo20使用Command步驟使用Command步驟:1、創(chuàng)建數(shù)據(jù)庫連接2、定義SQL語句3、創(chuàng)建Command對(duì)象4、執(zhí)行命令SqlConnectionconnection=newSqlConnection(connString);stringsql="SELECTCOUNT(*)FROMStudent";connection.Open();//打開數(shù)據(jù)庫連接SqlCommandcommand=newSqlCommand(sql,connection);intnum=(int)command.ExecuteScalar();執(zhí)行命令前,必須打開數(shù)據(jù)庫連接!要進(jìn)行類型轉(zhuǎn)換!使用Command步驟使用Command步驟:SqlCo213、為什么使用DataSet對(duì)象應(yīng)用程序大量的數(shù)據(jù)來自多個(gè)數(shù)據(jù)源大批量的查詢、修改數(shù)據(jù)怎么辦?想在斷開數(shù)據(jù)庫連接的情況下操所數(shù)據(jù)怎么辦?使用DataSet對(duì)象DataSet數(shù)據(jù)庫3、為什么使用DataSet對(duì)象應(yīng)用程序大批量的查詢、22什么是DataSet對(duì)象DataSet數(shù)據(jù)集簡(jiǎn)單理解為一個(gè)臨時(shí)數(shù)據(jù)庫將數(shù)據(jù)源的數(shù)據(jù)保存在內(nèi)存中獨(dú)立于任何數(shù)據(jù)庫工廠的倉庫車間的臨時(shí)倉庫生產(chǎn)線數(shù)據(jù)源DataSet應(yīng)用程序駐留于內(nèi)存,臨時(shí)存儲(chǔ)數(shù)據(jù)類似什么是DataSet對(duì)象DataSet數(shù)據(jù)集工廠的倉庫23DataSet的基本結(jié)構(gòu)1DataSetDataTableDataColumnCollectionDataRowCollectionDataColumnDataRowDataTableCollection數(shù)據(jù)集數(shù)據(jù)表的集合數(shù)據(jù)表數(shù)據(jù)列的集合數(shù)據(jù)行的集合數(shù)據(jù)列數(shù)據(jù)行DataSet的基本結(jié)構(gòu)1DataSetDataTable24DataSet的基本結(jié)構(gòu)2GradeTableClassTableStudentTableidnameclasssex1小菲5女2小薇3女3小強(qiáng)6男DataTableCollection數(shù)據(jù)表集合DataTable數(shù)據(jù)表DataRowCollection數(shù)據(jù)行集合DataRow數(shù)據(jù)行DataColumnCollection數(shù)據(jù)列集合DataColumn數(shù)據(jù)列DataSet的基本結(jié)構(gòu)2GradeTableClassT25數(shù)據(jù)集的工作原理數(shù)據(jù)集發(fā)送數(shù)據(jù)修改數(shù)據(jù)集傳遞數(shù)據(jù)提交修改后的數(shù)據(jù)請(qǐng)求數(shù)據(jù)客戶端數(shù)據(jù)集的工作原理數(shù)據(jù)集發(fā)送數(shù)據(jù)修改數(shù)據(jù)集傳遞數(shù)據(jù)提交修改后的26如何創(chuàng)建DataSet對(duì)象創(chuàng)建一個(gè)DataSet可以指定一個(gè)數(shù)據(jù)集的名稱如果不指定名稱,則默認(rèn)被設(shè)為"NewDataSet"DataSetdataSet=newDataSet();DataSetdataSet=newDataSet(“MySchool”);//MySchool為數(shù)據(jù)集名稱DataSet數(shù)據(jù)集對(duì)象
=newDataSet("數(shù)據(jù)集的名稱字符串");可選的如何創(chuàng)建DataSet對(duì)象創(chuàng)建一個(gè)DataSetDat27使用C#代碼創(chuàng)建數(shù)據(jù)集數(shù)據(jù)集實(shí)例是由DataSet構(gòu)造函數(shù)創(chuàng)建的數(shù)據(jù)集的名稱是可選的,不需要指定如果沒有指定名稱,則以默認(rèn)名稱NewDataSet
創(chuàng)建數(shù)據(jù)集屬性說明DataSetName用于獲取或設(shè)置當(dāng)前數(shù)據(jù)集的名稱Tables用于檢索數(shù)據(jù)集中包含的表集合方法說明Clear清除數(shù)據(jù)集中包含的所有表的所有行HasChanges返回一個(gè)布爾值,指示數(shù)據(jù)集是否更改了DataSetstuDS=newDataSet(“StudentDetails");使用C#代碼創(chuàng)建數(shù)據(jù)集數(shù)據(jù)集實(shí)例是由DataSet構(gòu)28DataTable、DataColumn和DataRow1數(shù)據(jù)集中的數(shù)據(jù)以DataTable對(duì)象的形式存儲(chǔ)DataTable類屬于System.Data命名空間屬性說明Columns表示列的集合或DataTable包含的DataColumnConstraints表示特定DataTable的約束集合DataSet表示DataTable所屬的數(shù)據(jù)集PrimaryKey表示作為DataTable主鍵的字段或DataColumnRows表示行的集合或DataTable包含的DataRowHasChanges返回一個(gè)布爾值,指示數(shù)據(jù)集是否更改了DataTable、DataColumn和DataRow1數(shù)29方法說明AcceptChanges提交對(duì)該表所做的所有修改NewRow添加新的DataRow事件說明ColumnChanged修改該列中的值時(shí)激發(fā)該事件RowChanged成功編輯行后激發(fā)該事件RowDeleted成功刪除行時(shí)激發(fā)該事件DataTable、DataColumn和DataRow2方法說明AcceptChanges提交對(duì)該表所做的所有修改N30DataTable、DataColumn和DataRow3DataTableobjStuTable=newDataTable("Student");創(chuàng)建DataTable
對(duì)象的實(shí)例DataSetstuDS=newDataSet();DataTableobjStuTable=stuDS.Tables.Add("Student");創(chuàng)建DataTable
的實(shí)例,然后將其添加到數(shù)據(jù)集的Tables
集合中DataTable、DataColumn和DataRow3D31DataTable、DataColumn和DataRow4DataColumn
對(duì)象定義DataTable
的列DataTable
的
Columns
屬性含有對(duì)DataColumn
對(duì)象的引用屬性說明AllowDBNull表示一個(gè)值,指示對(duì)于該表中的行,此列是否允許null值ColumnName表示指定DataColumn的名稱DataType表示指定DataColumn對(duì)象中存儲(chǔ)的數(shù)據(jù)類型DefaultValue表示新建行時(shí)該列的默認(rèn)值Table表示DataColumn所屬的DataTable的名稱Unique表示DataColumn的值是否必須是唯一的DataTableobjStuTable=newDataTable("Student");DataColumnobjStuNumber=objStuTable.Columns.Add
("StuNo",typeof(Int32));objStuNumber.AllowDBNull=false;objStuNumber.DefaultValue=12;objStuTable.Columns.Add("StuName",typeof(string));objStuTable.Columns.Add("StuMarks",typeof(Double));使用多個(gè)DataColumn
對(duì)象創(chuàng)建DataTableDataTable、DataColumn和DataRow4D32DataTable、DataColumn和DataRow5DataRow對(duì)象表示DataTable中的實(shí)際數(shù)據(jù)屬性說明Item表示DataRow的指定列中存儲(chǔ)的值RowState表示行的當(dāng)前狀態(tài)Table表示用于創(chuàng)建DataRow的DataTable的名稱方法說明AcceptChanges用于提交自上次調(diào)用了AcceptChanges之后對(duì)該行所做的所有修改DeleteDeletestheDataRow用于刪除DataRowRejectChanges用于拒絕自上次調(diào)用了AcceptChanges之后對(duì)DataRow所做的所有修改//定義表結(jié)構(gòu),為Student表添加學(xué)號(hào)、姓名、分?jǐn)?shù)三列DataTableobjStuTable=newDataTable("Student");DataColumnobjStuNumber=newDataColumn();objStuNumber.DataType=objStuTable.Columns.Add
("StuNo",typeof(string));objStuNumber.AllowDBNull=false;objStuNumber.DefaultValue=12;objStuTable.Columns.Add("StuName",typeof(string));objStuTable.Columns.Add("StuMarks",typeof(Double));//向表中填充數(shù)據(jù)DataRowobjStuRow;objStuRow=objStuTable.NewRow();objStuRow["StuNo"]=99;objStuRow[“StuName”]=“王鷹";objStuRow["StuMarks"]=95;objStuTable.Rows.Add(objStuRow);在DataTable
對(duì)象中新建DataRowDataTable、DataColumn和DataRow5D33定義主鍵表中的主鍵用于對(duì)記錄進(jìn)行唯一標(biāo)識(shí)DataTable
的PrimaryKey
屬性接受含有一個(gè)或多個(gè)DataColumn
對(duì)象的數(shù)組objStuTable.PrimaryKey=newDataColumn[]{objStuTable.Columns["StuNo"]};設(shè)置單個(gè)列為DataTable
的主鍵objStuTable.PrimaryKey=newDataColumn[
]{ objStuTable.Columns["StuNo"], objStuTable.Columns["StuName"]};為DataTable
對(duì)象設(shè)置復(fù)合主鍵定義主鍵表中的主鍵用于對(duì)記錄進(jìn)行唯一標(biāo)識(shí)objStuTabl34DataTable
的約束Constraint是對(duì)表中數(shù)據(jù)施加的限制或規(guī)則集決定表中可以存儲(chǔ)的數(shù)據(jù)用于維護(hù)數(shù)據(jù)的正確性和有效性約束的類型ForeignKeyConstraintUniqueConstraintDataTable的約束Constraint是對(duì)表中數(shù)據(jù)施35DataViewDataView用作DataTable
中存儲(chǔ)的數(shù)據(jù)的表示層提供對(duì)DataTable
進(jìn)行排序、篩選和搜索的自定義視圖允許WinForms控件進(jìn)行數(shù)據(jù)綁定可用于查看DataTable中存儲(chǔ)的數(shù)據(jù)的子集數(shù)據(jù)綁定是為了在控件上顯示數(shù)據(jù)庫表中存儲(chǔ)的數(shù)據(jù),而將應(yīng)用程序的控件與數(shù)據(jù)表的行進(jìn)行綁定的過程屬性說明Item用于從指定的表中獲取一行數(shù)據(jù)RowFilter用于獲取或設(shè)置表達(dá)式,該表達(dá)式用于篩選可以在DataView中查看的行RowStateFilter用于獲取DataView的行狀態(tài)篩選器Table用于表示源DataTable方法說明AddNew向DataView添加新行Delete用于刪除指定索引處的行DataViewobjStuView=newDataView(objStuTable);objStuView.RowFilter="StuMarks>60";for(inti=0;i<objStuView.Count;i++){MessageBox.Show(objStuView[i]["StuNo"].ToString());}創(chuàng)建DataView
并對(duì)該視圖應(yīng)用某種篩選器DataViewDataView用作DataTable中364、為什么使用DataAdapter如何將數(shù)據(jù)庫的數(shù)據(jù)放在DataSet中?DataSet數(shù)據(jù)集DataAdapter數(shù)據(jù)庫DataSet數(shù)據(jù)集Connection數(shù)據(jù)庫連接DataAdapter數(shù)據(jù)適配器數(shù)據(jù)庫4、為什么使用DataAdapter如何將數(shù)據(jù)庫的數(shù)據(jù)放在37如何填充數(shù)據(jù)集使用DataAdapter對(duì)象填充數(shù)據(jù)集DataSet數(shù)據(jù)集使用
Fill()方法填充DataSet中的表使用
Connection連接數(shù)據(jù)源Connection數(shù)據(jù)庫DataAdapter的Fill()方法如何填充數(shù)據(jù)集使用DataAdapter對(duì)象填充數(shù)據(jù)集38填充數(shù)據(jù)集SqlDataAdapter對(duì)象名
=
newSqlDataAdapter(查詢用sql語句,數(shù)據(jù)庫連接);創(chuàng)建SqlDataAdapter對(duì)象1DataAdapter對(duì)象.Fill(數(shù)據(jù)集對(duì)象,"數(shù)據(jù)表名稱字符串");填充DataSet2填充數(shù)據(jù)集SqlDataAdapter對(duì)象名=創(chuàng)建39如何保存DataSet中的數(shù)據(jù)把數(shù)據(jù)集中修改過的數(shù)據(jù)提交到數(shù)據(jù)源DataSet數(shù)據(jù)集數(shù)據(jù)庫dataAdapter.Update(dataSet,"Teacher");DataAdapter的Update()方法調(diào)用前,要先設(shè)置更新需要的相關(guān)命令可以使用SqlCommandBuilder對(duì)象Connection如何保存DataSet中的數(shù)據(jù)把數(shù)據(jù)集中修改過的數(shù)據(jù)提40DataAdapter對(duì)象小結(jié)DataAdapter的主要屬性和方法屬性說明SelectCommand從數(shù)據(jù)庫檢索數(shù)據(jù)的Command對(duì)象方法說明Fill向DataSet中的表填充數(shù)據(jù)Update將DataSet中的數(shù)據(jù)提交到數(shù)據(jù)庫DataAdapter對(duì)象小結(jié)DataAdapter的主41SQLDataAdapter它設(shè)計(jì)為使用MicrosoftSQLServer7或更高版本提供最佳通信該適配器在數(shù)據(jù)集和MicrosoftSQLServer之間起橋梁作用,提供用于保存和檢索數(shù)據(jù)的接口與SqlConnection和SqlCommand相互配合使用SqlConnectionobjSqlConn=newSqlConnection
("SERVER=MYSERVER;database=Students;uid=sa;
password=playware");
SqlDataAdapterobjSqlAdapter=newSqlDataAdapter("SELECT*
fromStudent",objSqlConn);objSqlConn.Open();DataSetobjDS=newDataSet();objSqlAdapter.Fill(objDS,"Student");創(chuàng)建與SQLServer數(shù)據(jù)庫的連接,并用相應(yīng)的值填充數(shù)據(jù)集SQLDataAdapter它設(shè)計(jì)為使用Microsoft425、為什么使用DataReader應(yīng)用程序毛毛,浙江水專,優(yōu)秀毛毛姓名:學(xué)校:浙江水專成績(jī):優(yōu)秀DataReader怎樣讀取數(shù)據(jù)庫的數(shù)據(jù)?使用DataReader對(duì)象,每次讀取一行數(shù)據(jù)數(shù)據(jù)庫5、為什么使用DataReader應(yīng)用程序毛毛,浙江43示例1代碼分析關(guān)鍵代碼回顧://執(zhí)行查詢SqlDataReaderdataReader=command.ExecuteReader();stringgradeName="";//年級(jí)名稱//循環(huán)讀出所有的年級(jí)名,并添加到年級(jí)列表框中while(dataReader.Read()){gradeName=(string)dataReader[0];cboGrade.Items.Add(gradeName);}dataReader.Close();循環(huán)讀取數(shù)據(jù)行添加到組合框中示例1代碼分析關(guān)鍵代碼回顧://執(zhí)行查詢循環(huán)讀取數(shù)據(jù)行44DataReader的主要成員屬性說明HasRows是否返回了結(jié)果方法說明
Read前進(jìn)到下一行記錄Close關(guān)閉DataReader對(duì)象DataReader的主要成員:DataReader的主要成員屬性說明HasRows是否45DataReader使用步驟小結(jié)使用DataReader檢索數(shù)據(jù)的步驟:1、創(chuàng)建Command對(duì)象2、調(diào)用ExecuteReader()
創(chuàng)建DataReader對(duì)象3、使用DataReader的Read()
方法逐行讀取數(shù)據(jù)4、讀取某列的數(shù)據(jù),(type)dataReader[]5、關(guān)閉
DataReader對(duì)象獲取某列的值:方法一:指定列的索引,從0開始方法二:指定列名注意:DataReader使用后必須關(guān)閉DataReader使用步驟小結(jié)使用DataReader46小結(jié)編寫控制臺(tái)程序,從Student表中,讀取出所有姓“李”學(xué)員的姓名stringsql="SELECTStudentNameFROMStudent
WHEREStudentNameLIKE'李%'";SqlCommandcommand=newSqlCommand(sql,connection);connection.Open();SqlDataReaderdataReader=command.ExecuteReader();Console.WriteLine("查詢結(jié)果:");while(dataReader.Read()){Console.WriteLine((string)dataReader["StudentName"]);}dataReader.Close();小結(jié)編寫控制臺(tái)程序,從Student表中,讀取出所有姓“李”47操作數(shù)據(jù)應(yīng)用程序毛毛,浙江水專,良好毛毛姓名:學(xué)校:浙江水專成績(jī):良好ExecuteNonQuery如何對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行增刪改?使用ExecuteNonQuery()方法數(shù)據(jù)庫操作數(shù)據(jù)應(yīng)用程序毛毛,浙江水專,良好毛毛姓名:學(xué)48示例2代碼分析關(guān)鍵代碼回顧://創(chuàng)建command對(duì)象SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);//打開數(shù)據(jù)庫連接DBHelper.connection.Open();//執(zhí)行命令intresult=command.ExecuteNonQuery();……返回受影響記錄的行數(shù)示例2代碼分析關(guān)鍵代碼回顧://創(chuàng)建command對(duì)象49ExecuteNonQuery()方法小結(jié)該方法執(zhí)行指定的sql語句返回受影響的行數(shù)使用ExecuteNonQuery()的步驟小結(jié):1、創(chuàng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣東廣州工控集團(tuán)誠聘海內(nèi)外高層次人才備考題庫含答案詳解ab卷
- 2026上半年貴州事業(yè)單位聯(lián)考中共貴州省委網(wǎng)信辦招聘2人備考題庫參考答案詳解
- 2026在京全國性宗教團(tuán)體應(yīng)屆高校畢業(yè)生招聘16人備考題庫帶答案詳解ab卷
- 2026上半年安徽事業(yè)單位聯(lián)考五河縣招聘20人備考題庫附答案詳解(基礎(chǔ)題)
- 2026上海中醫(yī)藥大學(xué)國際教育學(xué)院英語教師招聘1人備考題庫附答案詳解(a卷)
- 2026年桃花鎮(zhèn)延喬路幼兒園招聘廚房幫廚若干名備考題庫及一套完整答案詳解
- 人才教育實(shí)施方案實(shí)際推行承諾書(4篇)
- 2026北京協(xié)和醫(yī)院緩和醫(yī)學(xué)中心合同制行政助理招聘?jìng)淇碱}庫及1套完整答案詳解
- 倉管員-崗位職責(zé)說明書
- 2026內(nèi)蒙古真金種業(yè)科技有限公司招聘7人備考題庫及答案詳解(新)
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國氟樹脂行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- DB1331∕T 109-2025 雄安新區(qū)建設(shè)工程抗震設(shè)防標(biāo)準(zhǔn)
- DB37∕T 1317-2025 超細(xì)干粉滅火系統(tǒng)技術(shù)規(guī)范
- 2026年煙草制品公司產(chǎn)品追溯碼管理制度
- Scratch講座課件教學(xué)課件
- 《低碳醫(yī)院評(píng)價(jià)指南》(T-SHWSHQ 14-2025)
- 2025至2030中國砷化鎵太陽能電池外延片行業(yè)市場(chǎng)深度研究與戰(zhàn)略咨詢分析報(bào)告
- 質(zhì)量環(huán)境及職業(yè)健康安全三體系風(fēng)險(xiǎn)和機(jī)遇識(shí)別評(píng)價(jià)分析及控制措施表(包含氣候變化)
- 四川省石室中學(xué)2025-2026學(xué)年高一上數(shù)學(xué)期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編集錦
- (完整版)小學(xué)一年級(jí)20以內(nèi)加減法混合運(yùn)算3000題(每頁100題-已排版)
評(píng)論
0/150
提交評(píng)論