C# sqlserver2000
2024-07-21 02:19:54
供稿:網(wǎng)友
visual studio.net的中文beta 2版本推出已有一段時日了,相比早期的beta 1版本,新版本各方面都有很大的變化,其中包括sql server編程方面,在中文beta 2中,數(shù)據(jù)庫的存取普遍改用了ole db的方式。由于數(shù)據(jù)庫編程是企業(yè)級應(yīng)用開發(fā)的核心,本文將舉例闡述中文bete 2版本中的sql server編程方法。
初始設(shè)置
首先,我們需在應(yīng)用系統(tǒng)中安裝sql server 2000,microsoft ole db provider for sql server (sql ole db)也會同時被自動安裝,接著用sql server的enterprise manager創(chuàng)建一個叫tyjdb的數(shù)據(jù)庫,并新建一名為address的數(shù)據(jù)表,其含name、email、age和address四個字段。
打開vs開發(fā)環(huán)境中的視圖選單項中的服務(wù)器資源管理器,該管理器可管理sql server及其他各種ole db的數(shù)據(jù)庫連接,并可以管理其中的數(shù)據(jù)。接著我們添加一個新的數(shù)據(jù)連接,連接屬性選擇microsoft ole db provider for sql server,然后選好服務(wù)器及數(shù)據(jù)庫tyjdb,測試連接成功后按確定。使用該工具可又快又準(zhǔn)地生成需要的數(shù)據(jù)庫連接字符串。
連接數(shù)據(jù)庫
新建一個asp.net項目或windows.net應(yīng)用程序,因為二者的數(shù)據(jù)庫存取程序是相同的。將服務(wù)器資源管理器中的數(shù)據(jù)連接拖至新建的web form上即可,這時自動生成了一個連接字符串如下:
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,提示時選取tyjdb的數(shù)據(jù)連接,選擇使用sql語句訪問數(shù)據(jù)庫,生成sql語句時只填入selectfrom address,確認完成即可。程序生成代碼如下:
protected system.data.sqlclient.sqldataadapter sqldataadapter1;
//存取數(shù)據(jù)庫的主要類
protected system.data.sqlclient.sqlcommand sqlselectcommand1;
//sql語句處理的類
protected system.data.sqlclient.sqlconnection sqlconnection1;
//連接數(shù)據(jù)庫的類
在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中顯示,加入一個datagrid控件至web form上,并在page_init中加入如下語句:
sqlconnection1.open();
//打開數(shù)據(jù)庫連接
dataset objdataset;
//新建一個放數(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ù)庫連接
編譯執(zhí)行后web form已可將數(shù)據(jù)庫中數(shù)據(jù)顯示在datagrid中了。
增加數(shù)據(jù)
若想增加數(shù)據(jù)庫數(shù)據(jù)時,我們只需在web form上新增對應(yīng)字段數(shù)量個數(shù)的textbox,并新增一個按鍵,接著為該按鍵增加click事件,具體代碼如下:
sqlinsertcommand1.parameters["@name"].value=textbox1.text;
//將textbox賦值給對應(yīng)參數(shù)
sqlinsertcommand1.parameters["@email"].value=textbox2.text;
sqlinsertcommand1.parameters["@age"].value=textbox3.text;
sqlinsertcommand1.parameters["@address"].value=textbox4.text;
sqlinsertcommand1.connection.open();
//打開連接
sqlinsertcommand1.executenonquery();
//執(zhí)行insert語句
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í)行這段程序時,只需在textbox中填入要添加的記錄字段的值,然后按該按鍵即可執(zhí)行添加功能。
刪除數(shù)據(jù)
若想刪除數(shù)據(jù)庫數(shù)據(jù)時,我們則需在web form上新增一個textbox5及一個按鍵,為該按鍵增加如下代碼:
sqlcommand sqldeletecommand1 = new system.data.sqlclient.sqlcommand();
//聲明sql command類對象
this.sqldataadapter1.deletecommand = sqldeletecommand1;
sqldeletecommand1.commandtext="delete from address where name='"+textbox5.text+"'";
//sql語句
sqldeletecommand1.connection = this.sqlconnection1;
//聲明使用的數(shù)據(jù)連接
sqldeletecommand1.connection.open();
sqldeletecommand1.executenonquery();
//執(zhí)行該sql語句
sqldeletecommand1.connection.close();
執(zhí)行這段程序時,只需在textbox5中填入要刪除的記錄name字段的值,然后按該按鍵即可執(zhí)行刪除功能。
更新操作原理都類同,具體開發(fā)中可以有許多技巧豐富完善上述程序,如增加錯誤處理等,這里限于篇幅不一一敘述了。
綜上可知,充分利用visual studio.net的開發(fā)環(huán)境來簡化程序設(shè)計對提高編程效率和質(zhì)量極有好處。
上述程序均用c#開發(fā),在中文windows 2000 server、sql server 2000、visual studio.net中文beta 2環(huán)境下,編譯并正常運行,中文顯示正常。