C#連接數(shù)據(jù)庫和插入、刪除、更新數(shù)據(jù)庫_第1頁
C#連接數(shù)據(jù)庫和插入、刪除、更新數(shù)據(jù)庫_第2頁
C#連接數(shù)據(jù)庫和插入、刪除、更新數(shù)據(jù)庫_第3頁
C#連接數(shù)據(jù)庫和插入、刪除、更新數(shù)據(jù)庫_第4頁
C#連接數(shù)據(jù)庫和插入、刪除、更新數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論