成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析C#如何連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)查詢功能

開發(fā) 后端
每種編程語(yǔ)言最重要的部分就是對(duì)數(shù)據(jù)庫(kù)的訪問了。那么C#如何連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)查詢功能?先需要復(fù)習(xí)一下數(shù)據(jù)庫(kù)增刪改查的簡(jiǎn)單語(yǔ)句。

C#如何連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)查詢功能?首先要求是進(jìn)行驅(qū)動(dòng)連接,連接好數(shù)據(jù)庫(kù)后,就只剩下對(duì)數(shù)據(jù)庫(kù)的訪問了。查詢可以參考一般數(shù)據(jù)庫(kù)的查詢。

數(shù)據(jù)庫(kù)操作四大步驟

1、查詢:select * from 表名(where 條件)

2、插入:insert into 表明(字段1,字段2……)values(值1,值2……)

3、修改:update 表名 set 字段1=值1,字段2=值2 (where 條件)

4、刪除:delete from 表名 (where條件)

在.NET中,對(duì)數(shù)據(jù)庫(kù)的訪問有兩種方式:oledb和sqlclient。兩種連接數(shù)據(jù)庫(kù)方式的不同之處是:oledb適合訪問各種各樣的數(shù)據(jù)庫(kù),而sqlclient只適用于sql server數(shù)據(jù)庫(kù),就訪問速度而言這兩種連接方式自然是sqlclient連接方式速度比較快,而相對(duì)也能夠用范圍來(lái)講則是oledb連接方式較好。下面capucivar將使用oledb連接方式來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問。

在連接數(shù)據(jù)庫(kù)之前需要導(dǎo)兩個(gè)包:System.Date和System.Date.Oledb。連接數(shù)據(jù)庫(kù)就要?jiǎng)?chuàng)建一個(gè)連接對(duì)象OleDbConnection conn = new OleDbConnection();,然后就要寫連接數(shù)據(jù)庫(kù)的字符串了:conn.ConnectionString="provider=sqloledb.1;data source=.;initial catalog=dbname;user id=username;pwd=password";連接字符串一共有五部分:1、指明驅(qū)動(dòng)2、指明數(shù)據(jù)源,即數(shù)據(jù)庫(kù)所在的地址3、指定連接那個(gè)數(shù)據(jù)庫(kù)4、用戶名5、密碼。接下來(lái)就該打開這個(gè)連接了:conn.open()。這樣就連接好了數(shù)據(jù)庫(kù),剩下的就是對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問了。首先來(lái)做一個(gè)查詢,既然是查詢,先不管怎么查詢,我們知道查詢出來(lái)的數(shù)據(jù)一定是個(gè)結(jié)果集,那么dot-net中的結(jié)果集是什么呢?常用的有這樣兩個(gè):dataTable和dataSet。

從表面看這兩個(gè)分別是數(shù)據(jù)的表和數(shù)據(jù)的集合。兩者的區(qū)別是:dataTable就是一個(gè)放在內(nèi)存中存放數(shù)據(jù)的表,查詢出來(lái)后若要將結(jié)果顯示在某個(gè)控件上,只需指定數(shù)據(jù)源為dataTable的對(duì)象;而dateSet是表的集合,也就是說(shuō)dataSet中可以放n個(gè)dataTable,查詢時(shí)可以同時(shí)返回兩個(gè)dataTable,在指定數(shù)據(jù)源時(shí)就要指定是dataSet中的哪個(gè)dataTable。比如有一個(gè)dataSet對(duì)象ds,那么指定數(shù)據(jù)源時(shí)就要這樣寫:ds.Tables[index]。查詢結(jié)束之后就要及時(shí)關(guān)閉連接:conn.close()。

下面就來(lái)做一個(gè)登陸界面來(lái)熟悉對(duì)數(shù)據(jù)庫(kù)的查詢操作:

C#如何連接數(shù)據(jù)庫(kù)?首先創(chuàng)建數(shù)據(jù)庫(kù)capucivar和表users,并在表中添加一行數(shù)據(jù):

  1. create database capucivar  
  2. create table users  
  3. (  
  4. uid int primary key identity(1,1),  
  5. username varchar(100),  
  6. userpass varchar(100)  
  7. )  
  8. insert into users(username,userpass) values('aaa','aaa'

新建一個(gè)解決方案,然后在解決方案里添加項(xiàng)目。因?yàn)槭桥c用戶交互的圖形界面,所以操作與以前有所不同,這次就要選擇windows 應(yīng)用程序。

在界面的左邊是wingdows窗體的控件,如果需要那個(gè)控件只需要將它拖放至右邊的窗體上即可,***將控件的name屬性也改一下。界面做好之后,如果那個(gè)控件需要有一個(gè)監(jiān)聽事件,鼠標(biāo)右擊屬性,右下角就會(huì)出現(xiàn)控件的屬性和事件,選中相應(yīng)的事件后雙擊直接進(jìn)入代碼編寫相應(yīng)代碼就可以了。

我們拖放兩個(gè)Lable(標(biāo)簽),兩個(gè)TextBox(單行文本框)和一個(gè)button(按鈕),做好一個(gè)簡(jiǎn)單的登陸界面。注意:對(duì)于密碼框不應(yīng)該明文顯示,應(yīng)該以“*”或其它的代替,所以要將它的屬性passwordchar改為“*”。

下面寫數(shù)據(jù)庫(kù)的連接即查詢,因?yàn)閿?shù)據(jù)庫(kù)操作是經(jīng)常要進(jìn)行的,所以一般習(xí)慣將對(duì)數(shù)據(jù)庫(kù)的連接和操作單獨(dú)作一個(gè)項(xiàng)目:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Data;// System.Data和System.Data.OleDb一定要導(dǎo)入  
  5. using System.Data.OleDb;  
  6. namespace Db //命名空間  
  7. {  
  8. public class ConnDb  
  9. {  
  10. OleDbConnection conn = null;//定義連接對(duì)象為null  
  11. public ConnDb()//構(gòu)造函數(shù)  
  12. {  
  13. if (conn==null)  
  14. {  
  15. conn = new OleDbConnection();  
  16. conn.ConnectionString="provider=sqloledb.1;data source=.;initial catalog=capucivar;user id=sa;pwd=";  
  17. }  
  18. if (conn.State == ConnectionState.Closed)  
  19. {//如果連接的狀態(tài)是關(guān)閉的話  
  20. conn.Open();//打開連接  
  21. }  
  22. }  
  23. public DataSet query(string sql)  
  24. {  
  25. DataSet ds = new DataSet();//創(chuàng)建dataSet對(duì)象  
  26. OleDbDataAdapter da = new OleDbDataAdapter(sql,conn);//適配器,用于填充dataSet或dataTable  
  27. da.Fill(ds);//使用Fill()方法填充dataSet  
  28. connClose();//關(guān)閉連接  
  29. return ds;//返回DataSet  
  30. }  
  31. public void connClose()//關(guān)閉連接的方法  
  32. {//先判斷連接是否關(guān)閉,如果沒有關(guān)閉就將它關(guān)閉  
  33. if (conn.State == ConnectionState.Open)  
  34. {  
  35. conn.Close();//關(guān)閉連接  
  36. } } } } 

在已經(jīng)做好的圖形用戶界面,選中一個(gè)控件,鼠標(biāo)右擊屬性。右下角找到按鈕的點(diǎn)擊事件后雙擊該事件(此處只需要雙擊按鈕)直接進(jìn)入代碼編寫相應(yīng)響應(yīng)事件代碼。完整代碼如下:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. namespace login//命名控件  
  9. {  
  10. public partial class Form1 : Form  
  11. {  
  12. public Form1()  
  13. {  
  14. InitializeComponent();  
  15. }  
  16. private void login_but_Click(object sender, EventArgs e)//按鈕的單擊事件  
  17. {  
  18. //得到用戶輸入的用戶名和密碼  
  19. string name = this.name_text.Text;  
  20. string pass = this.pass_text.Text;  
  21. //寫sql語(yǔ)句  
  22. string sql =string.Format("select * from users where username='{0}' and userpass='{1}'",name,pass);  
  23. DataSet ds = new Db.ConnDb().query(sql);  
  24. if (ds.Tables[0].Rows.Count > 0)  
  25. {// ds.Tables[0].Rows.Count是結(jié)果集的行數(shù)  
  26. MessageBox.Show("登陸成功!");  
  27. }  
  28. else  
  29. {  
  30. MessageBox.Show("登錄失敗!");  
  31. } } } } 

Ctrl+F5執(zhí)行,先輸入正確的“aaa”和“aaa”,執(zhí)行結(jié)果如下:

然后填入一個(gè)錯(cuò)誤的,執(zhí)行結(jié)果如下:

一個(gè)簡(jiǎn)單的從數(shù)據(jù)庫(kù)中查詢就做好了。至于增刪改capucivar將在下一篇文章中詳細(xì)闡述。

淺析C#如何連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)查詢功能就介紹到這里。

【編輯推薦】

  1. C# 泛型使用心得淺析
  2. C# 泛型集合概念及應(yīng)用淺析
  3. C# 泛型集合實(shí)例應(yīng)用淺析
  4. 淺析C# Dictionary泛型集合
  5. C# 泛型編程基礎(chǔ)實(shí)例詳解
責(zé)任編輯:彭凡 來(lái)源: 百度空間
相關(guān)推薦

2009-08-25 14:05:06

C#連接數(shù)據(jù)庫(kù)代碼

2009-03-19 10:08:09

C#數(shù)據(jù)庫(kù)查詢

2009-09-04 17:49:34

C#連接數(shù)據(jù)庫(kù)

2009-08-18 11:23:11

2010-10-26 15:21:11

連接Oracle數(shù)據(jù)庫(kù)

2009-07-20 15:14:44

iBATIS.NET連

2009-08-25 11:35:27

C#連接數(shù)據(jù)庫(kù)

2009-09-04 17:29:01

C#創(chuàng)建SQL Ser

2009-08-19 16:30:55

C#操作Access數(shù)

2010-10-26 15:30:12

連接Oracle數(shù)據(jù)庫(kù)

2009-09-04 17:23:21

C#數(shù)據(jù)庫(kù)連接對(duì)象

2009-08-19 16:40:26

C#操作Access數(shù)

2009-02-12 10:32:35

C#數(shù)據(jù)庫(kù)C#連接數(shù)據(jù)庫(kù)

2009-08-25 15:50:13

C#連接遠(yuǎn)程數(shù)據(jù)庫(kù)

2009-08-03 14:17:18

C#連接AccessC#連接SQL Ser

2009-08-12 14:23:01

C#連接MySql數(shù)據(jù)

2009-08-07 14:02:12

C#數(shù)據(jù)庫(kù)連接字符串

2009-07-06 17:23:34

JDBC連接數(shù)據(jù)庫(kù)

2011-03-16 17:14:17

JavaBean數(shù)據(jù)庫(kù)

2009-08-10 18:05:19

C#數(shù)據(jù)庫(kù)查詢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美性大战久久久久久久蜜臀 | 亚洲精品456| 久久精品91久久久久久再现 | 国产成人亚洲精品 | 久久毛片| 久久久999国产精品 中文字幕在线精品 | 亚洲成人免费视频 | 日韩中文在线观看 | 91伊人| 美女黄网站 | 亚洲一区国产精品 | 国产一区二区三区在线看 | 久久国产日韩欧美 | 秋霞电影一区二区 | 另类视频在线 | 精品一区二区三区不卡 | 在线看一区二区三区 | 日韩午夜在线观看 | 91麻豆精品一区二区三区 | 偷偷操视频| 国产在线1区 | av国产精品 | 在线免费毛片 | 一区二区三区精品在线视频 | 日韩欧美中文 | 日韩一级黄色毛片 | 亚洲免费精品一区 | 日韩另类 | 亚洲视频www | 在线一区二区观看 | 中文字幕亚洲一区二区va在线 | 黄色免费av | 欧美aⅴ| 国产精品亚洲综合 | 成人在线免费电影 | 国产精品99久久久久久www | 欧美视频免费在线 | 97精品超碰一区二区三区 | 国产精品久久影院 | 欧美日韩免费在线 | 免费一级淫片aaa片毛片a级 |