国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

Visual C#的SQL Server編程(轉(zhuǎn))

2024-07-21 02:22:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
visual studio.net的中文beta 2版本推出已有一段時(shí)日了,相比早期的beta 1版本,新版本各方面都有很大的變化,其中包括sql server編程方面,在中文beta 2中,數(shù)據(jù)庫(kù)的存取普遍改用了ole db的方式。由于數(shù)據(jù)庫(kù)編程是企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的核心,本文將舉例闡述中文bete 2版本中的sql server編程方法。

初始設(shè)置
首先,我們需在應(yīng)用系統(tǒng)中安裝sql server 2000,microsoft ole db provider for sql server (sql ole d也會(huì)同時(shí)被自動(dòng)安裝,接著用sql server的enterprise manager創(chuàng)建一個(gè)叫tyjdb的數(shù)據(jù)庫(kù),并新建一名為address的數(shù)據(jù)表,其含name、email、age和address四個(gè)字段。

打開(kāi)vs開(kāi)發(fā)環(huán)境中的視圖選單項(xiàng)中的服務(wù)器資源管理器,該管理器可管理sql server及其他各種ole db的數(shù)據(jù)庫(kù)連接,并可以管理其中的數(shù)據(jù)。接著我們添加一個(gè)新的數(shù)據(jù)連接,連接屬性選擇microsoft ole db provider for sql server,然后選好服務(wù)器及數(shù)據(jù)庫(kù)tyjdb,測(cè)試連接成功后按確定。使用該工具可又快又準(zhǔn)地生成需要的數(shù)據(jù)庫(kù)連接字符串。

連接數(shù)據(jù)庫(kù)
新建一個(gè)asp.net項(xiàng)目或windows.net應(yīng)用程序,因?yàn)槎叩臄?shù)據(jù)庫(kù)存取程序是相同的。將服務(wù)器資源管理器中的數(shù)據(jù)連接拖至新建的web form上即可,這時(shí)自動(dòng)生成了一個(gè)連接字符串如下:

this.sqlconnection1.connectionstring
= "data source=whoami;
initial catalog=tyjdb;
integrated security=sspi;
persist security info=false;
workstation id=whoami;
packet size=4096";
其中whoami為筆者的服務(wù)器名。

選取工具箱中的sqldataadapter并拖至該web form,提示時(shí)選取tyjdb的數(shù)據(jù)連接,選擇使用sql語(yǔ)句訪問(wèn)數(shù)據(jù)庫(kù),生成sql語(yǔ)句時(shí)只填入selectfrom address,確認(rèn)完成即可。程序生成代碼如下:

protected system.data.sqlclient.sqldataadapter sqldataadapter1;
//存取數(shù)據(jù)庫(kù)的主要類(lèi)
protected system.data.sqlclient.sqlcommand sqlselectcommand1;
//sql語(yǔ)句處理的類(lèi)
protected system.data.sqlclient.sqlconnection sqlconnection1;
//連接數(shù)據(jù)庫(kù)的類(lèi)
在initializecomponent()中有如下聲明:
this.sqlconnection1 = new system.data.sqlclient.sqlconnection();
this.sqldataadapter1 = new system.data.sqlclient.sqldataadapter();
this.sqlselectcommand1 = new system.data.sqlclient.sqlcommand();
this.sqldataadapter1.selectcommand = this.sqlselectcommand1;
this.sqlselectcommand1.commandtext = "select name, email, age, address from address";
this.sqlselectcommand1.connection = this.sqlconnection1;

為使table中數(shù)據(jù)能在web form中顯示,加入一個(gè)datagrid控件至web form上,并在page_init中加入如下語(yǔ)句:

sqlconnection1.open();
//打開(kāi)數(shù)據(jù)庫(kù)連接
dataset objdataset;
//新建一個(gè)放數(shù)據(jù)的dataset
objdataset=new dataset();
sqldataadapter1.fill(objdataset, "address");
//將數(shù)據(jù)填入dataset
datagrid1.datasource=objdataset.tables["address"].defaultview;
//關(guān)聯(lián)dataset和datagrid
datagrid1.databind();
//綁定數(shù)據(jù)
sqlconnection1.close();
//關(guān)閉數(shù)據(jù)庫(kù)連接

編譯執(zhí)行后web form已可將數(shù)據(jù)庫(kù)中數(shù)據(jù)顯示在datagrid中了。

增加數(shù)據(jù)
若想增加數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí),我們只需在web form上新增對(duì)應(yīng)字段數(shù)量個(gè)數(shù)的textbox,并新增一個(gè)按鍵,接著為該按鍵增加click事件,具體代碼如下:

sqlinsertcommand1.parameters["@name"].value=textbox1.text;
//將textbox賦值給對(duì)應(yīng)參數(shù)
sqlinsertcommand1.parameters["@email"].value=textbox2.text;
sqlinsertcommand1.parameters["@age"].value=textbox3.text;
sqlinsertcommand1.parameters["@address"].value=textbox4.text;
sqlinsertcommand1.connection.open();
//打開(kāi)連接
sqlinsertcommand1.executenonquery();
//執(zhí)行insert語(yǔ)句
sqlinsertcommand1.connection.close();
//關(guān)閉連接
sqlconnection1.open();
dataset objdataset;
//下面程序段更新datagrid
objdataset=new dataset();
sqldataadapter1.fill(objdataset, "address");
datagrid1.datasource=objdataset.tables["address"].defaultview;
datagrid1.databind();

執(zhí)行這段程序時(shí),只需在textbox中填入要添加的記錄字段的值,然后按該按鍵即可執(zhí)行添加功能。

刪除數(shù)據(jù)
若想刪除數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí),我們則需在web form上新增一個(gè)textbox5及一個(gè)按鍵,為該按鍵增加如下代碼:

sqlcommand sqldeletecommand1 = new system.data.sqlclient.sqlcommand();
//聲明sql command類(lèi)對(duì)象
this.sqldataadapter1.deletecommand = sqldeletecommand1;
sqldeletecommand1.commandtext="delete from address where name='"+textbox5.text+"'";
//sql語(yǔ)句
sqldeletecommand1.connection = this.sqlconnection1;
//聲明使用的數(shù)據(jù)連接
sqldeletecommand1.connection.open();
sqldeletecommand1.executenonquery();
//執(zhí)行該sql語(yǔ)句
sqldeletecommand1.connection.close();

執(zhí)行這段程序時(shí),只需在textbox5中填入要?jiǎng)h除的記錄name字段的值,然后按該按鍵即可執(zhí)行刪除功能。

更新操作原理都類(lèi)同,具體開(kāi)發(fā)中可以有許多技巧豐富完善上述程序,如增加錯(cuò)誤處理等,這里限于篇幅不一一敘述了。

綜上可知,充分利用visual studio.net的開(kāi)發(fā)環(huán)境來(lái)簡(jiǎn)化程序設(shè)計(jì)對(duì)提高編程效率和質(zhì)量極有好處。

上述程序均用c#開(kāi)發(fā),在中文windows 2000 server、sql server 2000、visual studio.net中文beta 2環(huán)境下,編譯并正常運(yùn)行,中文顯示正常。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永城市| 通化县| 布拖县| 巴里| 阳新县| 怀化市| 昌宁县| 托克托县| 呼伦贝尔市| 商都县| 皋兰县| 青田县| 义马市| 阿坝县| 永顺县| 宜春市| 华安县| 太谷县| 黄龙县| 舞钢市| 墨江| 兴安县| 新津县| 汉沽区| 水富县| 洞头县| 腾冲县| 仲巴县| 淮安市| 泸定县| 绵竹市| 南部县| 金川县| 宁南县| 梁平县| 政和县| 庆云县| 阳泉市| 信宜市| 铁力市| 施秉县|