我們前面的章節講了一下如何顯示數據庫中信息以及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了