我們前面的章節講了一下如何顯示數據庫中信息以及DataReader和DataSet的基本用法,有朋友說不過癮,要我快快寫下面的章節,很是對不起,我實在是沒有太多時間,寫這些很慢。(不要扔雞蛋,最多我不說廢話啦)
我們這里還是來講講DataSet吧,這是一個功能強大的東東,我們在上一節對它有了一個初步的了解,這里我們要講其如果用來操作數據。也是很簡單的東東,但是功能強大,要講全,不太可能,因為DataSet和DataGrid控件的講解就占了.Net 幫助的50%以上,而這個總共有23M...
這里我們建立一個test.mdb數據庫,做為測試的數據庫,其中有一個名為aspcn的表,數據結構如圖
圖 8-1
不需DataSet的數庫操作
在講DataSet的應用之前,我們來看看在ASP.net不使用DataSet如何對數據庫進行插入,更新,刪除.
要對數據進行插入,更新,刪除而又不能用DataSet,沒有辦法,只有用SQL直接來啦:),我這里只講一下怎樣去插入,因為其它的操作只是改一下SQL語句,我想大家沒有問題吧。這里由于使用的是mdb數據庫,那么這次就要用ADO.net來操作了。
我們先看看整個源代碼再說
<% @ Page Language="C#" %> <% @ Import Namespace="System.Data" %> <% @ Import Namespace="System.Data.ADO" %> <Script Language="C#" Runat="Server"> public string myConnstring="Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;"; ADOConnection MyConnection; public void Page_Load(Object src,EventArgs e) {
//用戶提交數據
} public void submit_Click(Object src,EventArgs e) { string username1 = Request.Form["username"]; string address1 = Request.Form["address"]; string school1 = Request.Form["shool"]; string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')"; //開始聯結 try { MyConnection = new ADOConnection(myConnstring); ADOCommand MyCommand = new ADOCommand(strInsert,MyConnection); MyConnection.Open(); MyCommand.ExecuteNonQuery(); MyConnection.Close(); Info.Text="數據已經保存"; } catch(Exception ee) { Info.Text="發生錯誤:"+ee.Message; }
} </script> <html> <head> <title></title> </head> <body> <asp:Label id="Info" runat=server /><br> <form runat="server"> 用戶名:<input type="text" name="username" size="20" ><br> 住址:<input type="text" name="address" size="20" ><br> 學校:<input type="text" name="school" size="20" ><br> <input type="button" value="提交" runat="server" OnServerClick="submit_Click" > <p>1</p> </form> </body> </html>
上面的程序執行情況看下面兩個圖:
圖8-2 執行前 圖8-3 執行后
因為我們是用的Access,所以首先就要申明一下啦
<% @ Import Namespace="System.Data" %> <% @ Import Namespace="System.Data.ADO" %>
表明我們這里使用的是ADO.net.
我們提交入數據庫的數據,來自于用戶的輸入,這里使用的是一個我們常見到的<form>表單,初一看和普通的沒有什么區別,但是我們仔細看看它的<form>中的屬性是什么,runat="server",呵呵,就是這么一個小小的標簽,這個程序的性質就變啦。這表明他是一個Web Form了。這里我用了HTML控件,目的就是為了讓大家看看ASP.net和ASP到底有哪些區別。
<form runat="server"> 用戶名:<input type="text" name="username" ><br> 住址:<input type="text" name="address" ><br> 學校:<input type="text" name="school" ><br> <input type="button" value="提交" runat="server" OnServerClick="submit_Click" > </form>
在上面的代碼,有一點需要注意就是,觸發button控件提交事件處理的是OnServerClick,這里大家很少有注意,因為大家使用WEB控件已成習慣,很容易就用了OnClick事件,呵呵,這種錯誤很難發現,錯了都不知道怎么錯的:)
下面我們就該在Submit_Click中處理提交事件了,首先是收集信息,這里我們又看到了久違的Request對象和Form方法。這個和ASP幾乎是一模一樣的,我也不想多說了。
string username1 = Request.Form["username"]; string address1 = Request.Form["address"]; string school1 = Request.Form["shool"];
接下來就是將收集來的數據寫入數據庫,關于數據庫的打開和執行,我們上一節也講過了。這里也就不羅嗦了。注意一下SQL語句的正確性就行。
string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')";
大家也要注意一下我的聯結語句(因為很多人來問我,如何連結mdb數據庫,其實和asp是一樣,最主要是大家有些人不愿意自已動手去實踐,問人已經成為了習慣)
public string myConnstring="Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";
這里聯結Access最實用的語句(個人認為),其實還有好多種寫法。比如:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/test/test.mdb
Data Source=aspcn
呵呵,本來這一節是要講DataSet的,沒有想到其它的文字一下子寫了這么多,只好留到下一節去講DataSet了
|