亲密接触ASP.Net(8)
2024-07-10 12:55:26
供稿:网友
我们前面的章节讲了一下如何显示数据库中信息以及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>中的属性是什么,ru
nat="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了