明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

親密接觸ASP.Net(8)

[摘要]我們前面的章節(jié)講了一下如何顯示數(shù)據(jù)庫中信息以及DataReader和DataSet的基本用法,有朋友說不過癮,要我快快寫下面的章節(jié),很是對不起,我實(shí)在是沒有太多時間,寫這些很慢。(不要扔雞蛋,最多我不說廢話啦)我們這里還是來講講DataSet吧,這是一個功能強(qiáng)大的東東,我們在上一節(jié)對它有了一個初步...
我們前面的章節(jié)講了一下如何顯示數(shù)據(jù)庫中信息以及DataReader和DataSet的基本用法,有朋友說不過癮,要我快快寫下面的章節(jié),很是對不起,我實(shí)在是沒有太多時間,寫這些很慢。(不要扔雞蛋,最多我不說廢話啦)

我們這里還是來講講DataSet吧,這是一個功能強(qiáng)大的東東,我們在上一節(jié)對它有了一個初步的了解,這里我們要講其如果用來操作數(shù)據(jù)。也是很簡單的東東,但是功能強(qiáng)大,要講全,不太可能,因?yàn)镈ataSet和DataGrid控件的講解就占了.Net 幫助的50%以上,而這個總共有23M...

這里我們建立一個test.mdb數(shù)據(jù)庫,做為測試的數(shù)據(jù)庫,其中有一個名為aspcn的表,數(shù)據(jù)結(jié)構(gòu)如圖



圖 8-1

不需DataSet的數(shù)庫操作

在講DataSet的應(yīng)用之前,我們來看看在ASP.net不使用DataSet如何對數(shù)據(jù)庫進(jìn)行插入,更新,刪除.

要對數(shù)據(jù)進(jìn)行插入,更新,刪除而又不能用DataSet,沒有辦法,只有用SQL直接來啦:),我這里只講一下怎樣去插入,因?yàn)槠渌牟僮髦皇歉囊幌耂QL語句,我想大家沒有問題吧。這里由于使用的是mdb數(shù)據(jù)庫,那么這次就要用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)
{

//用戶提交數(shù)據(jù)

}
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+"')";
//開始聯(lián)結(jié)
try
{
MyConnection = new ADOConnection(myConnstring);
ADOCommand MyCommand = new ADOCommand(strInsert,MyConnection);
MyConnection.Open();
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Info.Text="數(shù)據(jù)已經(jīng)保存";
}
catch(Exception ee)
{
Info.Text="發(fā)生錯誤:"+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>
學(xué)校:<input type="text" name="school" size="20" ><br>
<input type="button" value="提交" runat="server" OnServerClick="submit_Click" >
    <p>1</p>
</form>
</body>
</html>


上面的程序執(zhí)行情況看下面兩個圖:


圖8-2 執(zhí)行前

圖8-3 執(zhí)行后


因?yàn)槲覀兪怯玫腁ccess,所以首先就要申明一下啦

<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.ADO" %>

表明我們這里使用的是ADO.net.

我們提交入數(shù)據(jù)庫的數(shù)據(jù),來自于用戶的輸入,這里使用的是一個我們常見到的<form>表單,初一看和普通的沒有什么區(qū)別,但是我們仔細(xì)看看它的<form>中的屬性是什么,runat="server",呵呵,就是這么一個小小的標(biāo)簽,這個程序的性質(zhì)就變啦。這表明他是一個Web Form了。這里我用了HTML控件,目的就是為了讓大家看看ASP.net和ASP到底有哪些區(qū)別。

<form runat="server">
用戶名:<input type="text" name="username" ><br>
住址:<input type="text" name="address" ><br>
學(xué)校:<input type="text" name="school" ><br>
<input type="button" value="提交" runat="server" OnServerClick="submit_Click" >
</form>

在上面的代碼,有一點(diǎn)需要注意就是,觸發(fā)button控件提交事件處理的是OnServerClick,這里大家很少有注意,因?yàn)榇蠹沂褂肳EB控件已成習(xí)慣,很容易就用了OnClick事件,呵呵,這種錯誤很難發(fā)現(xiàn),錯了都不知道怎么錯的:)

下面我們就該在Submit_Click中處理提交事件了,首先是收集信息,這里我們又看到了久違的Request對象和Form方法。這個和ASP幾乎是一模一樣的,我也不想多說了。

string username1 = Request.Form["username"];
string address1 = Request.Form["address"];
string school1 = Request.Form["shool"];

接下來就是將收集來的數(shù)據(jù)寫入數(shù)據(jù)庫,關(guān)于數(shù)據(jù)庫的打開和執(zhí)行,我們上一節(jié)也講過了。這里也就不羅嗦了。注意一下SQL語句的正確性就行。

string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')";

大家也要注意一下我的聯(lián)結(jié)語句(因?yàn)楹芏嗳藖韱栁,如何連結(jié)mdb數(shù)據(jù)庫,其實(shí)和asp是一樣,最主要是大家有些人不愿意自已動手去實(shí)踐,問人已經(jīng)成為了習(xí)慣)

public string myConnstring="Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";

這里聯(lián)結(jié)Access最實(shí)用的語句(個人認(rèn)為),其實(shí)還有好多種寫法。比如:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/test/test.mdb

Data Source=aspcn

呵呵,本來這一節(jié)是要講DataSet的,沒有想到其它的文字一下子寫了這么多,只好留到下一節(jié)去講DataSet了



標(biāo)簽:親密接觸ASP.Net(8) 

相關(guān)文章