親密接觸ASP.Net(8) DataSet

來源:互聯網
上載者:User

我們這裡還是來講講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)
{

file://用戶提交資料

}
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+"')";
file://開始連接
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了。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.