日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
走進(jìn)ADO.NET的世界

ADO.NET通過(guò)封裝一些對(duì)象來(lái)實(shí)現(xiàn)C#與數(shù)據(jù)庫(kù)的連接,其實(shí)就是一個(gè)橋梁。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比晉中網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式晉中網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋晉中地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

下面先通過(guò)SQL Server來(lái)看ADO.NET是怎么樣具體連接數(shù)據(jù)庫(kù)的。

首先看一下在Visual Studio中創(chuàng)建數(shù)據(jù)庫(kù)(Visual Studio內(nèi)置一個(gè)數(shù)據(jù)庫(kù)服務(wù)器)

在視圖上打開(kāi)服務(wù)器資源管理器,在Visual Studio左邊會(huì)看到

右鍵數(shù)據(jù)庫(kù)連接,創(chuàng)建數(shù)據(jù)庫(kù)

其中的“.”代表本地服務(wù)器,新創(chuàng)建的數(shù)據(jù)名字PersonDB,創(chuàng)建一個(gè)人Persons表,三個(gè)字段ID整形自動(dòng)增長(zhǎng)為主鍵,一個(gè)PersonName,nvarchar(15),存儲(chǔ)人的姓名,PersonAge整形存儲(chǔ)人的年紀(jì)。好了表創(chuàng)建好了,接下來(lái)就看看怎樣把它同程序進(jìn)行連接,來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查。

創(chuàng)建一個(gè)windowForm程序,界面如下:

我們先來(lái)實(shí)現(xiàn)添加操作,首先引用命名空間:using System.Data.SqlClient;

首先先來(lái)連接數(shù)據(jù)庫(kù),通過(guò)SqlConnection創(chuàng)建連接對(duì)象。

  
 
 
 
  1. SqlConnection con = new SqlConnection();//創(chuàng)建連接對(duì)象

要想連接數(shù)據(jù)庫(kù),首先要知道你是要連接哪一個(gè)服務(wù)器,數(shù)據(jù)庫(kù)名稱等等。

  
 
 
 
  1. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  2. //分別表示服務(wù)器名稱、數(shù)據(jù)庫(kù)名稱、登錄用戶名及密碼

接下來(lái)創(chuàng)建sql命令對(duì)象:

  
 
 
 
  1. SqlCommand cmd = con.CreateCommand();//sql命令對(duì)象,表示要對(duì)sql數(shù)據(jù)庫(kù)執(zhí)行一個(gè)sql語(yǔ)句
  2. cmd.CommandText = "insert into persons(personname,personage) values(@name,@age)";
  3. //sql語(yǔ)句@name,@age表示兩個(gè)參數(shù)
  4. cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = textBox1.Text;
  5. //給參數(shù)賦值,并指定類型
  6. cmd.Parameters.Add("@age", SqlDbType.Int).Value = textBox2.Text;
  7. con.Open();//打開(kāi)連接
  8. cmd.ExecuteNonQuery();
  9. //執(zhí)行不是查詢的sql語(yǔ)句
  10. MessageBox.Show("插入成功!");

打開(kāi)數(shù)據(jù)庫(kù)連接一定要記得關(guān)閉連接:

  
 
 
 
  1. catch (Exception ex)//由于sql語(yǔ)句對(duì)半全角很敏感,捕捉異常
  2. {
  3. MessageBox.Show(ex.Message);
  4. }
  5. finally
  6. {
  7. con.Close();//不管打開(kāi)成功還是失敗,都能關(guān)閉連接
  8. }

好了,到這一步插入操作做完了,接下來(lái)看一下能不能往表中插入數(shù)據(jù)。

點(diǎn)擊添加,我們?nèi)ersons表中看一下有沒(méi)有成功插入數(shù)據(jù)

我們看到“張三”被成功添加進(jìn)去了,我們?cè)賮?lái)多添加幾條數(shù)據(jù)。

接下來(lái)看一下查詢操作怎么做,其實(shí)和插入操作沒(méi)多大區(qū)別,只是多了一個(gè)SqlDataReader讀者對(duì)象:下面來(lái)看一下源代碼:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. //分別表示服務(wù)器名稱、數(shù)據(jù)庫(kù)名稱、登錄用戶名及密碼
  5. SqlCommand cmd = con.CreateCommand();
  6. cmd.CommandText = "select id,personname,personage from persons";
  7. //查詢所有
  8. con.Open();
  9. SqlDataReader dr = cmd.ExecuteReader();//提供一種從 SQL Server 數(shù)據(jù)庫(kù)讀取行的只進(jìn)流的方式
  10. listBox1.Items.Clear();//清除listbox數(shù)據(jù)
  11. comboBox1.Items.Clear();//清除combox數(shù)據(jù)
  12. while (dr.Read())//一行一行讀取數(shù)據(jù),返回值是bool類型
  13. {
  14. listBox1.Items.Add("姓名:"+dr.GetValue(1).ToString() + " 年齡:"+dr.GetValue(2).ToString());
  15. comboBox1.Items.Add(dr.GetValue(0));//把ID放到combox中,方便刪除及修改
  16. }
  17. dr.Close();//關(guān)閉讀取流操作
  18. }
  19. catch (Exception ex)
  20. {
  21. MessageBox.Show(ex.Message);
  22. }
  23. finally
  24. {
  25. con.Close();
  26. }

來(lái)看一下查詢結(jié)果:

接下來(lái)在來(lái)實(shí)現(xiàn)刪除操作,和插入幾乎一樣,先從數(shù)據(jù)庫(kù)中查詢出所有數(shù)據(jù),獲得它們的ID(都放到combox里面了)

下面看一下具體實(shí)現(xiàn):

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. SqlCommand cmd = con.CreateCommand();
  5. con.Open();
  6. cmd.CommandText = "delete persons where id=@id";//刪除語(yǔ)句,已ID為條件刪除
  7. cmd.Parameters.Add("@id", SqlDbType.Int).Value =comboBox1.Text;
  8. cmd.ExecuteNonQuery();
  9. }
  10. catch (Exception ex)
  11. {
  12. MessageBox.Show(ex.Message);
  13. }
  14. finally
  15. {
  16. con.Close();
  17. }

先查詢,

選擇刪除ID,

點(diǎn)擊刪除,再來(lái)查詢一下

我們看到朱重八被刪除了。

最后來(lái)做修改,這個(gè)比較麻煩,首先要修獲得要修改的數(shù)據(jù),先獲得所有數(shù)據(jù),在通過(guò)ID來(lái)實(shí)現(xiàn)查詢當(dāng)個(gè)數(shù)據(jù),然后在確定修改

看修改查詢代碼:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. SqlCommand cmd = con.CreateCommand();
  5. cmd.CommandText = "select personname,personage from persons where id=@id";
  6. cmd.Parameters.Add("@id",SqlDbType.Int).Value = comboBox1.Text;
  7. con.Open();
  8. SqlDataReader dr = cmd.ExecuteReader();
  9. dr.Read();//因?yàn)橹蛔x一條數(shù)據(jù),就不用while循環(huán)
  10. textBox1.Text = dr.GetValue(0).ToString();
  11. textBox2.Text = dr.GetValue(1).ToString();
  12. dr.Close();
  13. }
  14. catch (Exception ex)
  15. {
  16. MessageBox.Show(ex.Message);
  17. }
  18. finally
  19. {
  20. con.Close();
  21. }

再來(lái)看一下確定修改代碼:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. SqlCommand cmd = con.CreateCommand();
  5. con.Open();
  6. cmd.CommandText = "update persons set personname=@name,personage=@age where id=@id";
  7. cmd.Parameters.Add("@id", SqlDbType.Int).Value = comboBox1.Text;
  8. cmd.Parameters.Add("@name",SqlDbType.NVarChar).Value=textBox1.Text;
  9. cmd.Parameters.Add("@age", SqlDbType.NVarChar).Value = textBox2.Text;
  10. cmd.ExecuteNonQuery();
  11. }
  12. catch (Exception ex)
  13. {
  14. MessageBox.Show(ex.Message);
  15. }
  16. finally
  17. {
  18. con.Close();
  19. }

好了,我們先查詢?nèi)啃畔?,在通過(guò)ID獲得修改信息

把名字改成,七匹馬,確定修改,再來(lái)查詢一下是否修改成功

現(xiàn)在可以看到修改成功了。

到這里,基礎(chǔ)性的東西都講完了,還有SqlDataAdapter,DataTable類,下次在講。

鏈接:http://www.cnblogs.com/wjfluisfigo/archive/2010/05/23/1742034.html

責(zé)任編輯:彭凡
來(lái)源: 博客園 ADO.NET


本文標(biāo)題:走進(jìn)ADO.NET的世界
網(wǎng)頁(yè)鏈接:http://www.5511xx.com/article/dhegsos.html