




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、對數(shù)據(jù)庫的操作總體可以分為兩類:查詢(select)和更新(insert,delete,update)。為什么這樣來分呢?仔細(xì)看看兩類的區(qū)別,select只是從數(shù)據(jù)庫中將數(shù)據(jù)拿出來使用,而其余三者都會對數(shù)據(jù)庫的物理數(shù)據(jù)進(jìn)行修改。capucivar在上篇文章中已經(jīng)對數(shù)據(jù)庫的查詢操作進(jìn)行了詳細(xì)的闡述。這篇文章將接著闡述更新數(shù)據(jù)。更新數(shù)據(jù)庫信息首先是連接數(shù)據(jù)庫,這個capucivar在C#連接數(shù)據(jù)庫之查詢數(shù)據(jù)庫中已有介紹了。對數(shù)據(jù)庫的更新需要一個對象:OleDbCommand。該對象表示要對數(shù)據(jù)源執(zhí)行的SQL語句或存儲過程。這個對象有三個屬性:l、CommandText表示要設(shè)置命令的文本;2Con
2、nection表示要設(shè)置命令的連接;3、CommandType表示設(shè)置命令的類型,默認(rèn)的是Sql語句(但如果不是執(zhí)行sql語句,就一定要指定命令的類型)。OleDbCommand對象設(shè)置好以后,就該執(zhí)行sql語句了。方法ExecuteNonQuery()就是執(zhí)行sql語句。如果記不住這個方法,教你一個簡單的記法:將“ExecuteNonQuery”單詞分為三部分,就是“執(zhí)行不查詢”,那就是更新數(shù)據(jù)了。下面就做一個例子熟悉對數(shù)據(jù)庫的更新:先使用VisualStudio2005做出如下界面:界面做好以后就相當(dāng)于做了一個空殼子。接下來就是往里邊添加事件了。我們還要借用上篇文章中的ConnDb類,在該
3、類里添加一個方法:update()對數(shù)據(jù)庫進(jìn)行更新,該方法里有一個參數(shù)stringsql。publicclassConnDbOleDbConnectionconn=null;/連接數(shù)據(jù)庫的對象/下面是構(gòu)造函數(shù)連接數(shù)據(jù)庫publicConnDb()f(conn=null)判斷連接是否為空conn=newOleDbConnection();conn.ConnectionString=provider=sqloledb.l;datasource=.;initialcatalog=capucivar;userid=sa;pwd=;連接數(shù)據(jù)庫的字符串if(conn.State=ConnectionSta
4、te.Closed)conn.Open();/打開數(shù)據(jù)庫連接/下面這個方法是從數(shù)據(jù)庫中查找數(shù)據(jù)的方法publicDataSetquery(stringsql)DataSetds=newDataSet();/DataSet是表的集合OleDbDataAdapterda=newOleDbDataAdapter(sql,conn);從數(shù)據(jù)庫中查詢da.Fill(ds);將數(shù)據(jù)填充到DataSetconnClose();關(guān)閉連接returnds;/返回結(jié)果/下面的方法是對數(shù)據(jù)庫進(jìn)行更新publicintupdate(stringsql)OleDbCommandoc=newOleDbCommand();
5、表示要對數(shù)據(jù)源執(zhí)行的SQL語句或存儲過程oc.CommandText=sql;/設(shè)置命令的文本oc.CommandType=CommandType.Text;/設(shè)置命令的類型oc.Connection=conn;/設(shè)置命令的連接intx=oc.ExecuteNonQuery();執(zhí)行SQL語句connClose();關(guān)閉連接returnx;/返回一個影響行數(shù)下面的connClose()方法是關(guān)閉數(shù)據(jù)庫連接publicvoidconnClose()if(conn.State=ConnectionState.Open)/判斷數(shù)據(jù)庫的連接狀態(tài),如果狀態(tài)是打開的話就將它關(guān)閉conn.Close();對
6、數(shù)據(jù)庫的操作類寫好了。然后就來實(shí)現(xiàn)增刪改的功能:理一下思路,先添加一個用戶,如何編寫代碼:1、得到客戶所填的數(shù)據(jù)(用戶名和密碼);2、編寫insert語句,將用戶信息通過ConnDb()類添加到數(shù)據(jù)庫中;3、返回一個影響行數(shù)以便通知客戶執(zhí)行是否成功。代碼如下:privatevoidadd_but_Click(objectsender,EventArgse)/按鈕單擊事件/得到用戶所填的用戶名和密碼stringuname=this.uname_text.Text;stringupass=this.upass_text.Text;stringsql=string.Format(insertinto
7、usersvalues(O,l),uname,upass);拼寫sql語句將該用戶信息插入到數(shù)據(jù)庫中intx=newDb.ConnDb().update(sql);通過ConnDb()對象的update()方法執(zhí)行sql語句并返回一個影響行數(shù)if(x0)/如果影響行數(shù)大于0則說明插入成功,否則的話插入失敗MessageBox.Show(添加成功!”);elseMessageBox.Show(”添加失敗!”);添加一個用戶之后,在右邊的listBox中顯示出來:publicvoidrefurbish()stringsql=select*fromusers;/sql語句查詢數(shù)據(jù)DataSetds=
8、newDb.ConnDb().query(sql);查詢返回一個DataSetthis.listBox1.DisplayMember=username;/listBox中要顯示的列this.listBox1.DataSource=ds.Tables0;listBox的數(shù)據(jù)源執(zhí)行結(jié)果如下:而當(dāng)客戶選中右邊的listBox中的一個選項(xiàng)時,可以進(jìn)行相應(yīng)的刪除或修改。刪除的代碼如下:privatevoiddel_but_Click(objectsender,EventArgse)stringuname=this.listBox1.Text;得到listBox中所選的值stringsql=string.
9、Format(deletefromuserswhereusername=0,uname);/拼寫sql語句刪除用戶intx=newDb.ConnDb().update(sql);調(diào)用update()方法返回影響行數(shù)if(x0)/根據(jù)返回的影響行數(shù)判斷刪除是否成功MessageBox.Show(“刪除成功!“);elseMessageBox.Show(“刪除失敗!“);刪除之后的結(jié)果如下:在點(diǎn)擊“更新”按鈕之后,應(yīng)該彈出一個窗口顯示客戶所選用戶的信息供客戶更新。更新的代碼如下:privatevoidupa_but_Click(objectsender,EventArgse)stringuname
10、=this.listBoxl.Text;/得到listBox中所選的用戶信息newupd(uname).ShowDialog();彈出要更新窗口upd.csupd.cs的代碼如下:publicpartialclassupd:Formpublicupd()/無參構(gòu)造函數(shù)InitializeComponent();publicupd(stringuname)/有參構(gòu)造函數(shù)InitializeComponent();this.uname_text.Text=uname;/將用戶名放到文本框stringsql=string.Format(select*fromuserswhereusername=0,
11、uname);/拼寫sql語句通過用戶名查找用戶的信息DataSetds=newDb.ConnDb().query(sql);/下面得到結(jié)果集中的信息分別放至相應(yīng)文本框中this.uid_text.Text=ds.Tables0.Rows00.ToString();this.upass_text.Text=ds.Tables0.Rows02.ToString();privatevoidbuttonl_Click(objectsender,EventArgse)點(diǎn)擊“確認(rèn)修改”按鈕所響應(yīng)的事件intuid=Convert.ToInt32(this.uid_text.Text);得到uidstri
12、nguname=this.uname_text.Text;得至U用戶名stringupass=this.upass_text.Text;得到用戶密碼stringsql=string.Format(updateuserssetusername=0,userpass=lwhereuid=2,uname,upass,uid);拼寫一個修改sql語句intx=newDb.ConnDb().update(sql);/返回所受影響行數(shù)if(x0)/根據(jù)影響行數(shù)判斷修改是否成功MessageBox.Show(”修改成功!”);this.Visible=false;/將該頁面隱藏elseMessageBox.Show(”修改失敗!”);return;privatevoidbutton2_Click(objectsender,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 快速掌握裁判知識的試題及答案
- 2024年裁判員考試應(yīng)對技巧試題及答案
- 農(nóng)作物種子繁育員的道德責(zé)任試題及答案
- 2024年種子繁育員考試每周學(xué)習(xí)計(jì)劃試題及答案
- 2024年游泳救生員考試注意事項(xiàng)試題
- 提高考試通過率的裁判員試題及答案
- 農(nóng)作物種子繁育員資格考試試題及答案在線解析
- 2024年國家公務(wù)員考試國考國家稅務(wù)系統(tǒng)結(jié)構(gòu)化面試真題試題試卷及答案解析7套全
- 農(nóng)業(yè)植保員考試政策變化影響試題及答案
- 2024年農(nóng)業(yè)植保員資格考試的新情況與應(yīng)對策略試題及答案
- 心肺復(fù)蘇急救步驟圖例
- 《春夜喜雨》公開課一等獎?wù)n件
- 簡易呼吸球囊
- 第一章醫(yī)學(xué)統(tǒng)計(jì)學(xué)方法的基本概念和基本步驟講課課件
- 基于51單片機(jī)家用電熱水器的設(shè)計(jì)論文
- 臨床研究樣本量計(jì)算器 CRESS V1.3
- 醫(yī)患溝通技巧培訓(xùn)
- 消化系統(tǒng)藥 抗消化性潰瘍藥 (護(hù)用藥理學(xué))
- 山東省青島市第一中學(xué) 年自主招生考試數(shù)學(xué)試題( )
- GB/T 20388-2006紡織品鄰苯二甲酸酯的測定
- 銀行結(jié)售匯統(tǒng)計(jì)案例分析
評論
0/150
提交評論