亲密接触ASP.Net(8)

来源:互联网 发布:五迷三道 知乎 编辑:程序博客网 时间:2024/06/05 18:58
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
document.write(baiduCproIFrame());-->我们前面的章节讲了一下如何显示数据库中信息以及DataReader和DataSet的基本用法,有朋友说不过瘾,要我快快写下面的章节,很是对不起,我实在是没有太多时间,写这些很慢。(不要扔鸡蛋,最多我不说废话啦)

我们这里还是来讲讲DataSet吧,这是一个功能强大的东东,我们在上一节对它有了一个初步的了解,这里我们要讲其如果用来操作数据。也是很简单的东东,但是功能强大,要讲全,不太可能,因为DataSet和DataGrid控件的讲解就占了.Net帮助的50%以上,而这个总共有23M...

这里我们建立一个test.mdb数据库,做为测试的数据库,其中有一个名为ASPcn的表,数据结构如图



图8-1

不需DataSet的数库操作

在讲DataSet的应用之前,我们来看看在ASP.Net不使用DataSet如何对数据库进行插入,更新,删除.

要对数据进行插入,更新,删除而又不能用DataSet,没有办法,只有用SQL直接来啦:),我这里只讲一下怎样去插入,因为其它的操作只是改一下SQL语句,我想大家没有问题吧。这里由于使用的是mdb数据库,那么这次就要用ADO.Net来操作了。

我们先看看整个源代码再说


<%@PageLanguage="C#"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.ADO"%>
<ScriptLanguage="C#"Runat="Server">
publicstringmyConnstring="Driver={MicrosoftAccessDriver(*.mdb)};DBQ=c:/test/test.mdb;";
ADOConnectionMyConnection;
publicvoidPage_Load(Objectsrc,EventArgse)
{

//用户提交数据

}
publicvoidsubmit_Click(Objectsrc,EventArgse)
{
stringusername1=Request.Form["username"];
stringaddress1=Request.Form["address"];
stringschool1=Request.Form["shool"];
stringstrInsert="insertintoASPcn(username,address,school)
values('"+username1+"','"+address1+"','"+school1+"')";
//开始联结
try
{
MyConnection=newADOConnection(myConnstring);
ADOCommandMyCommand=newADOCommand(strInsert,MyConnection);
MyConnection.Open();
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Info.Text="数据已经保存";
}
catch(Exceptionee)
{
Info.Text="发生错误:"+ee.Message;
}

}
</script>
<html>
<head>
<title></title>
</head>
<body>
<ASP:Labelid="Info"runat=server/><br>
<formrunat="server">
用户名:<inputtype="text"name="username"  size="20"><br>
住址:<inputtype="text"name="address"  size="20"><br>
学校:<inputtype="text"name="school"size="20"><br>
<inputtype="button"value="提交"runat="server"OnServerClick="submit_Click">
    <p>1</p>
</form>
</body>
</html>


上面的程序执行情况看下面两个图:


图8-2执行前

图8-3执行后


因为我们是用的Access,所以首先就要申明一下啦

<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.ADO"%>

表明我们这里使用的是ADO.Net.

我们提交入数据库的数据,来自于用户的输入,这里使用的是一个我们常见到的<form>表单,初一看和普通的没有什么区别,但是我们仔细看看它的<form>中的属性是什么,runat="server",呵呵,就是这么一个小小的标签,这个程序的性质就变啦。这表明他是一个WebForm了。这里我用了HTML控件,目的就是为了让大家看看ASP.NetASP到底有哪些区别。

<formrunat="server">
用户名:<inputtype="text"name="username"><br>
住址:<inputtype="text"name="address"><br>
学校:<inputtype="text"name="school"><br>
<inputtype="button"value="提交"runat="server"OnServerClick="submit_Click">
</form>

在上面的代码,有一点需要注意就是,触发button控件提交事件处理的是OnServerClick,这里大家很少有注意,因为大家使用WEB控件已成习惯,很容易就用了OnClick事件,呵呵,这种错误很难发现,错了都不知道怎么错的:)

下面我们就该在Submit_Click中处理提交事件了,首先是收集信息,这里我们又看到了久违的Request对象和Form方法。这个和ASP几乎是一模一样的,我也不想多说了。

stringusername1=Request.Form["username"];
stringaddress1=Request.Form["address"];
stringschool1=Request.Form["shool"];

接下来就是将收集来的数据写入数据库,关于数据库的打开和执行,我们上一节也讲过了。这里也就不罗嗦了。注意一下SQL语句的正确性就行。

stringstrInsert="insertintoASPcn(username,address,school)values('"+username1+"','"+address1+"','"+school1+"')";

大家也要注意一下我的联结语句(因为很多人来问我,如何连结mdb数据库,其实和ASP是一样,最主要是大家有些人不愿意自已动手去实践,问人已经成为了习惯)

publicstringmyConnstring="Driver={MicrosoftAccessDriver(*.mdb)};DBQ=c:/test/test.mdb;";

这里联结Access最实用的语句(个人认为),其实还有好多种写法。比如:

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

DataSource=ASPcn

呵呵,本来这一节是要讲DataSet的,没有想到其它的文字一下子写了这么多,只好留到下一节去讲DataSet了
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>